什么是 CSS hack
CSS hack由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览器的不同版本,如IE6和IE7,对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。
谈一谈浏览器兼容的思路
- 渐进增强:先让低版本的浏览器要能够使用基本功能,再针对高版本的现代浏览器进行效果,交互等改进,追加更多功能达到更好的交互效果。
- 优雅降级:一开始就构建完整的功能,再针对低版本的浏览器进行兼容。
列举5种以上浏览器兼容的写法
#box{
color:red; ⁄* 所有浏览器都支持 *⁄
color:red !important; ⁄* Firefox、IE7支持 *⁄
_color:red; ⁄* IE6支持 *⁄
*color:red; ⁄* IE6、IE7支持 *⁄
*+color:red; ⁄* IE7支持 *⁄
color:red \9; ⁄* IE6、IE7、IE8支持 *⁄
color:red \0; ⁄* IE8支持 *⁄
}
* , ie6,ie7可以识别;
_和- , ie6可以识别;
!important ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级;
-webkit- ,针对safari,chrome浏览器的内核CSS写法
-moz-,针对firefox浏览器的内核CSS写法
-ms-,针对ie内核的CSS写法
-o-,针对Opera内核的CSS写法
以下工具/名词是做什么的
- 条件注释
是HTML源码中被 Microsoft Internet Explorer有条件解释的语句。条件注释可被用来向 Internet Explorer 提供及隐藏代码。 - IE Hack
处理各个浏览器兼容问题 - js 能力检测
浏览器的能力检测目标不是检测特定的浏览器,而是检测浏览器的能力。这样,只需要检测浏览器是否支持特定的能力,就可以给出特定的解决方案。这一部分检测是解决浏览器兼容问题的主要检测。 - html5shiv.js
由于IE6/IE7/IE8还有很大一部分用户,为了让网站浏览者都能正常的访问HTML5网站,解决方案就有下面:
- 使用Javascript来使不支持HTML5的浏览器支持HTML标签。目前大多网站采用的这种方式(Bootcss官方例子也是如此)。
- 利用脚本document.createElement(“”)创建对应的脚本,CSS选择器便可正确应用到该标签。
- 考虑到IE9是支持html5的,所以直接在HTML页面的head标签中添加脚本引用即可。
-
respond.js
Respond.js 是一个快速、轻量的 polyfill,用于为 [IE]6-8 以及其它不支持 CSS3 Media Querie 的浏览器提供媒体查询的 min-width 和 max-width 特性,实现响应式网页设计(Responsive Web Design)。 -
css reset
将浏览器的默认样式全部去掉,更准确说就是通过重新定义标签样式。“覆盖”浏览器的CSS默认属性。最最简单的说法就是把浏览器提供的默认样式覆盖掉!这就是CSS reset。 -
normalize.css
Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。和css reset的用法一样,但是不再那样简单粗暴的将所有的样式去掉,而是保留了一些合理的样式。 -
Modernizr
Modernizr测试当前浏览器的CSS3和HTML5功能,并通过两种方式使结果可用:作为全局Modernizr对象上以及<html>元素上的类。可以帮助我们更加简单的解决浏览器的兼容性问题。 -
postCSS
将标准的CSS转化为带有前缀的各个浏览器都能识别的属性
网友评论