魅族手机MX2原生浏览器字体大小问题

都知道魅族的手机很坑了,我就不多说了.

今天要说的是我才发现的一个BUG.关于魅族手机MX2,MX3(其他机型未测试),固件版本均为3.7.3A稳定版原生浏览器,在测试页面的字体大小样式时无效,如果你的魅族手机有遇到类似问题,可以试试这个demo测试一下,顺便看下源码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>meizu mx2 stock browser bug with font size style</title>
<style type="text/css">
* {margin:0;padding:0;}
body * {/*height:150px;*/display: block;}
</style>
</head>
<body>
    <h1 style="font-size:60px;">h1 tag with a font-size 60px style!</h1>
    <p style="font-size:60px;">p tag with a font-size 60px style!</p>
    <span style="font-size:60px;">span tag with a font-size 60px style!</span>
    <strong style="font-size:60px;">strong tag with a font-size 60px style!</strong>
    <a href="#" style="font-size:60px;">a tag with a font-size 60px style!</a>
</body>
</html>

从这个代码中可以看出,所有元素应该都是60px字体大小.

但是又可以发现a标签的字体大小是比以上字体大,实际上a才是60px大小,而其他元素的字体大小则是一个默认值.为什么会这样,请问魅族开发人员!

我发现了一个现象,上面把高度给注释去掉了,也就是”hack”后,则字体大小显示正常,均保持了60px,见demo2…这是什么原因.

鬼才知道!

因此我们一致认为魅族原生浏览器坑爹.我不记得web标准是需要给设定了字体大小的元素加高度的吧…

IScroll的click单击事件变为双击多次触发解决

前阵子做WAP端的项目,用到了iScroll插件,结果发现有很多问题,起初并未用多个设备进行测试,以为并没有什么问题,结果进入项目尾声进行测试的时候,竟被这个插件折腾了好几天简直让人抓狂.其间收集了一些资料,但是苦于项目上线后一直都比较忙,也就没有什么时间总结这个iscroll插件的一些问题,距离项目上线已经有了半个月了,我下文写的不好还请见谅.

首先iscroll是为了让wap端页面的的某个层内能够固定滚动而特别制作的,我起初想这个东西使用好像还是比较广泛的,问题应该不多吧.之前同事也有使用过,不过基本上使用的是简单的功能,而我这次进行的更多是复杂的交互效果,因此,让我纠结了很久的就是android手机在不同系统版本上,在不同浏览器上以及不同系统版本和不同版本浏览器这三种情况都可能发生各种问题.

参考资料:

https://github.com/cubiq/iscroll/issues/674

https://github.com/cubiq/iscroll/issues/547


以上内容是一个月前写的…我已记不清了,大概是处理不同设备的click事件遇到了很多问题,,,这篇文章放在草稿箱许久了,是时候终结了!

这个iscroll插件的确有很多需要注意的地方,仔细阅读了文档重要部分好几遍,结果写的代码还是问题很多,本文就iscroll使用上的一些问题总结一下与大家分享分享.

我们先来看一个demo(从项目中提出可能有部分冗余代码),主要用于分类选择,菜单弹出功能,(实际应用效果见太平洋电脑网手机端产品库页面,当然后期可能改版,实际效果与demo略有差异)如,用到zepto库,iscroll插件.其中iscroll主要是处理固定高度的滑动效果,它能够自适应并兼容很多设备,所以我选择了插件.

当然每个可以上下滑动的区域都需要创建一个IScroll实例,只需要简单的一句话即可,但是要遵守它的HTML代码结构,详细可以参考官方文档.这里就不讲基本的使用方法了,底部有资料写的很清楚了.我就简要说一下关于这个DEMO中的注意事项.

首先是这是一个带有弹出层的页面,每次点击导航会有一个向下滚出的层,那么弹出后就会创建对应的一个或两个iscroll实例,当点击顶部收回的时候,容易忽略一点,刚创建的实例依然存在,假设收回不销毁新建的实例,就会出问题!

其次,iscroll内的的click事件处理,默认是false,这在ios系统的手机上会出现click执行两次,也就无效的情况,需要改成true,所以需要对创建的示例增加参数.但是问题在于兼容了ios后,android各个版本会出现同样的问题.解决方案,对不同的安卓设备采取不同的click属性值处理,但是经过大量机器测试,依然可能出现无法兼容的情况(实际上是通过一个正则处理的,见代码)

function iScrollClick(){ //设备识别来控制iscroll的click真假
    if (/iPhone|iPad|iPod|Macintosh/i.test(UA)) return true;
    if (/Chrome/i.test(UA)) return (/Android/i.test(UA));
    if (/Silk/i.test(UA)) return false;
    if (/Android/i.test(UA)) {
        var s = UA.match(/Android [\d+.]{1,5}/)[0].replace('Android ','');
        return parseFloat(s[0]+s[2]+s[4]) <= 442 && parseFloat(s[0]+s[2]+s[4]) > 430 ? true : false;
    } //测试大量机器总结的规律,可能会有极小部分机器在选择功能上依然出现问题
}

其实官方文档中有一个options.preventDefault的属性可以配置,但是不知道是哪里出了问题,经过反复测试都没起到作用.于是这个问题折腾了很久…直到有一天…

虽然早起处理这个问题的时候就知道有fastclick,或许可以解决,但是又是一个插件,毕竟一个项目中用太多的插件不好,所以未采纳,前几天研究移动端的touch事件和普通的pc端click等事件时,更清楚的明白了一些东西,例如事件冒泡等…反复琢磨测试,觉得fastclick或许也是可行的,既然之前的方案不够完美,不妨试试这个demo,去掉了iscroll对click的配置(即默认都是false),并添加了fastclick插件及全局配置后,测试了很多机器,发现,并未出现问题.那么目前来看针对iscroll出现的双击,穿透,或是点击延时等问题应该全部处理好了!

毕竟这个内容过去太久,凭借回忆来写的,可能有些混乱,建议有遇到类似问题的朋友仔细看看两个demo的区别,一个是正则处理iscroll的click属性的demo,一个是用fastclick插件的iscroll demo,只需要注意两个demo的js的区别即可!

最后附上相关参考资料:

官方资料: IScroll官方网站 IScroll PDF参考手册 IScroll Github

其他: iScroll 5 API 中文版


后来发现,原来这不是万金油,总会有些坑爹的情况.比如魅族原生浏览器,还有chrome…竟然也会出问题,太失望了.

也就是说,在魅族原生浏览器下,需要设置为click : true才能正常运作,魅族原生浏览器如果false则会出现两次点击,而产生意外情况.而chrome则是当false时,整个iscroll容器内的事件全部被阻止了..没有办法只得打补丁了.于是加了以下代码…

var clickBoolean = false;
if (/Chrome/i.test(UA)) clickBoolean = true;
if (/534.30/i.test(UA)) {
    if (/UCBrowser/i.test(UA)) clickBoolean = false; //覆盖同版本
    else clickBoolean = true; //魅族原生?
}

我本来想通过UA标识来区分魅族浏览器,因为我这个写了534.30来区分魅族的方法风险太大因为UC也是这个版本,所以又加了一条如果是uc还是要用false,想在魅族的UA上处理,但是魅族原生浏览器真的很坑,UA上面根本无法下手.只能临时采用下策了.

这几点是需要大家注意的…(2015年2月2日18:54:00)

更新至WordPress 4.0

花了两个晚上,总算升级到了4.0,本地测试了半天,最后还是没有重新安装而是直接升级.也不知道会不会出问题.

不得不说住在这里的电信太坑爹,玩炉石要挂代理,用个FTP工具也要代理!!!我空间服务商也是折腾了半天,才连上.

本来说早点睡,但是一整博客就没完,仔细对比了3.8.1的主题和4.0的2012年的主题,进行了修改,其中并没有太大的改动,我想可能主要是维护2014的主题吧.另外其他增加的功能也没什么测试的.

最近也是瞎忙,一直没更新博客,本来是200W排名,虽然不值一提,但是降到600多W也是很不爽的.准备有空最近再来整改一下博客,优化一下了.

wordpress高亮插件Highlight.js手动添加及使用说明

使用WORDPRESS已经有很多年了,作为一个以技术内容为主的网站,经常会在文章内引用到各种语法的代码,在wordpress插件管理中,我们同样能够找到很多关于语法高亮的插件,有的十分完美,体积却异常庞大,比如我之前使用的Crayon Syntax Highlighter,若果博主们对自己的服务器很有信心,又喜欢强大的配置管理,这款插件实在是省事,可是我总觉过于臃肿,因为很多功能用不到,于是后来我找到了另一个插件SyntaxHighlighter Evolved,这款插件相对来讲很简洁,并且它所使用的高亮JS是很多大型网站都在用的,可是不知道为什么我这里看起来感觉怪怪的,并且它使用起来需要用到类似[html][/html]的标签,如果一旦放弃使用这个插件,恐怕就杯具了.虽然之前经过慎重考虑,选用了此插件,但是高亮效果感觉并不满意,最终寻找到了或许更好的或说更适合我的”高亮插件”–Highlight.js(其实wordpress里面有个wp-highlight.js的插件不知道是不是这个js,我没装,只是看了下,其实也是有下文提到的问题的.而且还不精简,所以我就决定手动添加)!

今天我就来简单介绍一下如何使用这个Highlight.js(如果喜欢自己琢磨,可以直接访问官方网站highlight.js查看相关说明)

当然我也是看了官方文档说明,总结给懒人看的.

本地测试

一. 准备必要文件

既然是使用它,那必须是需要一个highlight.js了,这个js可以自定义生成,这一点非常适合我,毕竟我只是一个小小小小的前端工作者,我只需要高亮显示html,css,js,json,最多加个php,sql了.于是,在这里,自定义配置这个js–Custom package,此处勾上自己需要的,然后点击Download按钮,很快一个zip文件就下载好了.

继续阅读wordpress高亮插件Highlight.js手动添加及使用说明

jsfiddle网站被封,大量日志重新修改

最近显示谷歌被封,接着还有一大堆常用的网站都出现了访问不正常,有本事你把github也封了吧~

我这可怜的小站长,只好把现有的201篇日志,花了我将近两个小时从头到尾翻了一遍,找出所有用了jsfiddle的文章,全部注释掉,说明如下:

PS:由于近日(2014年6月)jsfiddle无法正常访问,可能受内网影响,现将之前所有jsfiddle预览去除,不过你仍然可将以上地址拷贝到浏览器预览,或选择尝试以下代码:

近日特作此说明.若有发现遗漏请和部分错误与我联系,毕竟文章数量大,恐怕会有错误,谢谢合作!

wordpress默认主题引用google fonts导致访问速度过慢解决

这几天博客访问量下降,虽然本来每天就不多,这下可好,发现网站直接打不开,明白的人,都知道谷歌的服务器受影响了,所以博客就打不开了,估计很多wordpress中枪,临时解决方案就是将那些引用自谷歌服务器的文件取消,可是如何才能取消呢,小弟无才,自己未能解决,最终从网上找到两篇,一篇是cnblogs上的,写的好像很不错,不过没试成功,另一篇,更离谱,修改functions.php的一段代码,我却都没找到,也不知道是什么版本的.

最终还是用了插件,总算舒服了些,其实我不太喜欢给wordpress安装一大堆插件,等过几日有时间再来研究一下这个或许跟调用twentytwelve_get_font_url有关的函数吧.

有需要的可以安装此插件,插件名称: Disable Google Fonts

安装后启用即可,生在中国,要么忍要么…算了不想说了.还是乐观点吧.

WORDPRESS自定义模板后的PO文本翻译修改以及MO修改教程

wordpress这个程序虽然强大,但是有时候根据自己需求不同,需要进行一些模板的修改,这次就我自定义模板后出现的一些问题和大家分享下,内容涉及到主题的修改以及PO文本翻译修改,还有MO文件的修改等内容.

先简单说一下我的需求,我希望图片附件模板(image.php)里增加一条作者信息(实际上还是为了google的seo优化处理的),而默认是没有的,怎么处理,可参考该页面OCZ Vertex4包装正面图一(当然目前是已添加好的),如图:

修改图片内容模板信息
修改图片内容模板信息

现在应该很容易理解我要做的事情了吧,这个东西看起来似乎也是很简单的,不过当你看完这篇文章,也许你不会轻易这样想了.至少我完美解决这样的小问题花了3个小时,不过我的确不熟悉wordpress和php,也没有人能帮助我,好吧,闲话少说,步入正题. 继续阅读WORDPRESS自定义模板后的PO文本翻译修改以及MO修改教程

如何使用git for windows与github同步数据

其实,github这个东东很多经常做开发的人都应该知道,可以将自己做的demo上传维护并管理,也可以把其他人的优秀作品抓来研究学习,可谓一个很棒的网站.今天主要介绍一下git for windows(msysgit)与github同步的方法.

前几天在同事hoosin的简单介绍下,我又决定尝试好好学习利用一下github这个利器了.正巧有个朋友曾经试过失败了,希望我写个简单的操作过程,那么我接下来就简单介绍一下本地git与github数据同步的一些方法及过程. 继续阅读如何使用git for windows与github同步数据

sublime text的插件SFTP连接超时

这几天看到关于sublime text的一个连接FTP的插件SFTP,居然能直接修改同步上去.那可是省事多了,以后改内容,直接通过这个修改后上传,也不用FTP工具了.可是省事了,可是在设置正确使用的时候出了点小问题,总是提示连接超时,什么原因呢?

先来说说安装吧,之前很多文章提到了安装插件的过程,这里就不复述了,装好SFTP插件,先要对着需要同步到服务器的目录右键-“Map to remote…“,接着会弹出一个配置文件,我按照经验简单设置了一下,测试连接,却始终连不上去.于是我又仔细查阅了官方的关于SFTP的官方说明,详见:Sublime SFTP Settings,却还是不行,改端口,改密码,改改改…都不行,最后索性试一下这个连接方式改成FTP,效果如何,结果一下就连上了,只知道FTP有主动传输和被动传说,真不知道这个S是用来做啥的,最可恶的是,官方文档说,除特殊情况,请保持默认SFTP…真是服了.

最后上我的配置图:

SFTP设置图
SFTP设置图

如果嫌每次敲密码麻烦,这里可以输入密码就可以了,至于其他配置,可以根据个人需求来设置.

PS:后来发现这个插件总是报错,兼容性有点问题还是怎么回事,大家自行考虑是否使用(2014年6月19日)

谷歌站长工具结构化数据错误提示修正方法

我有个习惯,看到哪里报错了,非解决不可,要不然心里惦记着啊,不舒服啊…这最近用谷歌站长工具,发现我这个wordpress博客有一大堆问题啊…例如:

Structured Data Errors
一大堆结构化数据错误…

除了最明显的结构化数据这里有无数个页面错误,好在这里大多可以通过修改模版一次性解决.但是如何解决了,最令我无语的是起初我用的是英文版的谷歌站长工具…看不懂,什么叫做Structured Data > hatom (markup: microformats.org)?什么叫做Missing: updated? 什么叫做Missing: author?搞不懂…看了半天帮助文档,弄了一晚上没搞明白,外加坑爹中国GFW,又不能上google plus…好多服务都限制了.不过功夫不负有心人.我看了无数遍帮助文档,还有Structured Data Testing Tool里面的Examples,以及谷歌的论坛,终于解决了.下面来说一下这两个问题怎么解决了.

继续阅读谷歌站长工具结构化数据错误提示修正方法