1、 ios8 h5 通信 不能传带有复杂链接符的字符串(json格式、&),可以用下划线
2、css3动画兼容写法
animation:loading 2s linear .1s infinite;
-webkit-animation:'loading' 2s linear .1s infinite;
-moz-animation:'loading' 2s linear .1s infinite;
-ms-animation:loading 2s linear .1s infinite;
3、safari中伪元素不支持CSS3动画
在项目中肯定有很多前端开发人员使用css的伪元素属性进行页面构建。虽然这种方式很方便,但是在safari中并不支持伪元素的CSS3动画效果。
4、safari中当一个元素的高度为零时,下边的同级元素的上外边距会覆盖这个元素
在IE、chrome、FF中,即使一个元素的高度为0,也会把它当作块级元素看待,在页面中占据相应的位置。但是在safari中,高度为0的元素会被直接忽略。
5、PC版safari、移动浏览器中当元素绝对定位时,其bottom属性跟标准浏览器解析相反,只能设置top属性定位
6、ios系统中在移动浏览器的页面中按钮加事件,其按钮必须是原生按钮或者有a标签自定义构成
7、 在移动浏览器中给根元素(例如:html)添加overflow:hidden,只有在原生自带安卓浏览器(例如华为的自带浏览器)中才有效。
8、css3多行文本溢出方法
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;
text-overflow:ellipsis;
9、在某些安卓系统手机自带浏览器(例如:华为手机)中,当父级元素是弹性盒子布局时,其子元素的margin-bottom失效,不能撑开父级元素。需要改为设置padding-bottom解决。
Demo地址:http://m.saikr.com/vs
10、在safari中使用Date.parse()解析时间字符串,其格式必须是YYYY/MM/DD HH:MM:SS。
Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。
上述是JavaScript 参考文档的说明。严格来说,其解析的时间字符串必须是YYYY/MM/DD HH:MM:SS。但是,在IE、chrome、FF中,也可以解析YYYY-MM-DD HH:MM:SS或者YYYY.MM.DD HH:MM:SS这两种非标准格式的时间字符串。而safari只能解析标准格式。因此,开发人员在使用这个方法时,最好先把非标准格式转换成标准格式,这样就可以避免兼容问题。
var date = new Date(Date.parse(expireDate.replace(/-/g, "/")));
11、在IOS系统中H5播放器不支持自动播放
在iphone和ipad上用HTML5播放器时,不能自动播放,apple的解释说是为用户节省流量,我觉得这个考虑有点多余。
当时为了解决这个问题,做了些调研,最好的方法就是在IOS系统的浏览器中给页面根元素绑定一次touchstart事件播放流媒体文件,模拟自动播放。
document.body.scrollTop与document.documentElement.scrollTop两者有个特点,就是同时只会有一个值生效。比如document.body.scrollTop能取到值的时候,document.documentElement.scrollTop就会始终为0;反之亦然。所以,如果要得到网页的真正的scrollTop值,可以这样:
var scrollTop=document.body.scrollTop+document.documentElement.scrollTop;//第一种方式
var scrollTop = document.body.scrollTop > 0 ? document.body.scrollTop : document.documentElement.scrollTop;//第二种方式
var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;//第三种方式
13、IOS系统的safari不支持iframe自适应宽度、高度