什么是CSS Hack?
针对不同的浏览器写不同的CSS,使它能在不同的浏览器中得到想要的页面效果。
比如IE6能识别""(下划线)和""(星号);IE7能识别"",不能识别"";IE6~10都识别"\9",但firefox前述三个都不能识别。
表现形式:CSS属性前缀法;选择器前缀法;IE条件注释法。
谈一谈浏览器兼容的思路
首先是要不要做,一是产品的角度:受众是哪些人群,这些人群所用的浏览器是哪些,需要展现完整的效果还是首要展现功能。再是成本角度:时间成本和资金。
然后是做到什么程度,根据分析,让哪些浏览器支持哪些效果。
最后就是如何做,根据兼容需求选择技术框架/库;根据兼容需求选择兼容工具;用条件注释,CSS Hack,js能力检测做一些修补。
列举五种浏览器兼容的写法
条件注释: IE9支持,IE10及以上不支持
css属性前缀法:例:.box {color:red;_color:red;*color:red;color:red\9;}
选择器前缀法:例:*html .box { color: red;}
使用modernizr直接使用其在html中生成的class
如果浏览器不支持某标签,使用html5shiv.js,创建这个标签,使之可以被渲染。一般结合条件注释使用。
解释以下工具/名词是做什么的
-
条件注释
利用语法,很好的在不同的浏览器中得到想要的页面效果。 -
IE Hack
针对不同的IE浏览器写不同的CSS,使它能在不同的浏览器中得到想要的页面效果。 -
js能力检测
识别浏览器的能力,确定浏览器对特定属性是否支持以便做出解决方案。 -
html5shiv.js
创建一个标签,并使浏览器可以渲染。 -
respond.js
模拟CSS3的媒体查询,使浏览器可以渲染。 -
css reset
清除浏览器的所有默认样式。 -
normalize.css
替代css reset,保留一定的浏览器默认样式,修复了浏览器自身bug。 -
Modernizr
通过这个工具可以知道浏览器对各种标签和css的支持情况。 -
postCSS
使用 JS 插件来转换 CSS得到兼容性的代码的工具。
网友评论