什么是 CSS hack
由于市面上存在的各种不同浏览器,以及同种浏览器的不同版本,对CSS的解析不完全一样,可能导致在不同的浏览器下页面效果存在一定的差异。
因此,我们可以针对不同浏览器的解析方式,写出各种对应的的CSS语句,从而使页面在各种浏览器下都能呈现我们想要的效果。
谈一谈浏览器兼容的思路
1、首先我们从产品受众所使用的浏览器、网站特性、实现兼容所需的成本等角度出发,综合考虑,确认是否需要处理浏览器的兼容问题;
2、如果需要兼容,那么进一步确认需要兼容哪些浏览器,以及兼容到何种程度。一般而言,国内浏览器以webkit内核和IE为主,所以通常情况下只要考虑是否需要兼容IE,以及兼容到IE的哪个版本;
3、选择和确认通过何种方法/工具/框架来实现兼容。
列举5种以上浏览器兼容的写法
以下工具/名词是做什么的
条件注释:于Html源码中被IE有条件解释的语句。可以将它理解为一种特殊的注释,在一般情况下和普通注释一样不会被浏览器解析,但在IE6-9中可以被浏览器解析,从而呈现出某些特定的样式。
IE Hack:针对不同版本的IE浏览器,写出与之对应的的CSS语句,从而实现对IE各版本的兼容。
js 能力检测:检测当前浏览器是否支持某些特定的js样式。
html5shiv.js:针对不支持Html5的IE6/7/8浏览器,模拟出一些Html5中的标签样式,使其能够在这类浏览器下正常显示。
respond.js:针对不支持CSS3媒体查询的IE6/7/8浏览器,模拟媒体查询功能,从而实现页面响应式。
css reset:强制清除和重置浏览器赋予页面的默认样式,使页面在所有浏览器下的初始样式保持一致。
normalize.css:css reset的改良版,它不再一味地强制将所有浏览器的默认样式清除,而是优化和保留了一部分合理的样式,并且确保它们在不同浏览器下能呈现出一致的状态。
Modernizr:检测当前浏览器是否支持某些特定的样式属性,通过修改Html的class,使页面呈现最优的样式,从而解决浏览器的兼容问题。
postCSS:一个能够提供CSS插件的平台,这些插件主要被用来解决浏览器兼容性问题。我们只需要按照正常写法编写CSS语句,通过这些插件的处理,可以使这些语句变成能够被特定浏览器识别的语句。