我这个人比较追求完美,只要有一点瑕疵都会及时去掉。这些年来,养成一个习惯,有问题百度一下,搜索下“360浏览器不兼容CSS”,发现还真是有很多人碰到这类问题。有解决方法就好办,于是凡是涉及能解决这类问题都试了下,不断地看资料、根据步骤修改源码、上传文件、刷新360浏览器看结果。好事总是多磨,试了好不下5次都没有解决问题,耐心都快被耗完了,不过有志者事竞成这句话不是骗人。改变了搜索内容“360浏览器 head标签”,在红黑联盟中找到解决方法,原文为《页面头部head标签加上对应的标签让360浏览器选择相应的内核》。
我是在head标签中加入以下代码,再次刷新360浏览器时,发现显示图片正常了,当失败多次后突然成功了,感觉就像发生了奇迹一样,令人妙不可言。
神奇的代码就是这一句:
总结:其实360浏览器不兼容CSS的解决方法有很多,但不一定正好适合我们所碰到的情况,这时就需要不断尝试,一定要有耐心才能问题解决,请记住:办法总是比困难多。
transform 不会使DOM脱离文档流,当通过 translateX 等属性值移动了元素后,它仍然占据原来的位置。好处是, transform 制作的动画会直接进入合成阶段,避开重排重绘,可以通过 Performance 录制面板来查看 transform 动画的效率。
MDN animation
深入浅出CSS动画
MDN animate()
监听 CSS animation 动画的事件:
这些监听事件对 animate() 是无效的。
页面顶部经常会见到水平无限轮播的公告。
由于轮播的内容是动态的,可能很多,也可能很少,如果公告内容的宽度没有超过最大宽度限制,那么就不应该轮播,如果超过了,则发起轮播。
假设我们永远只有一条最新的公告
原理:当一次动画执行结束时,影子内容的头部刚好对准轮播内容的初始位置,那么下次动画开始时,轮播内容将重新回到初始位置,由于影子内容与轮播内容相同,那么就给人造成一种无限轮播的错觉。
逻辑实现:父元素设置了 overflow: hidden ,又想要获取父元素、子元素的真实宽度,那么可以通过 scrollWidth 获取。
兼容性:如果不支持 animate() ,那么我们可以动态创建 <style>+ @keyframes ,插入 <head>, 但也要记得移除。
最好的解决办法就是用个GIF动画代替,这样即使是最古老的浏览器都没有问题,而且运行效率与css3实现的动画不相上下。这要看你的网页侧重于哪种浏览设备。如果是主要用于移动设备如手机上的浏览器的,可以放心大胆地使用css3的特效,因为几乎所有智能手机上的浏览器都是支持css3标准的;如果是主要用于电脑的,则尽量避免使用css3中的新特性,改用最兼容、最稳妥的方法,因为它面对的是形形色色、标准极其不统一的多种浏览器;如果是手机和电脑都要兼顾到的网页,则也要坚持“就低不就高”的原则,在兼容性与炫酷之间选择前者。