重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最好不要hack,hack本身就不是规范写法,最好是用设计弥补差异,或者用js判断浏览器做不同处理,或者用jquery添加css属性,jquery直接帮你处理了不同浏览器的兼容
创新互联建站-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、德阳服务器托管、等保安全、私有云建设等企业级互联网基础服务,电话联系:13518219792
css hack的解释我就不多说了,你随便百度就能搜到详细的规范解答,我就通俗的解释一下好了,因为不同浏览器或者浏览器的不同版本对部分css样式的解析效果不相同,比如某个样式设置margin-left:5px;有的浏览器就会正常显示效果,而有的浏览器就会显示为margin-left:10px;的效果,为了让我们写出来的效果在不同浏览器中显示都一样,就需要针对不同浏览器来写样式,也就是这个样式只有这个浏览器能读取调用,那个样式只有那个浏览器能读取调用,互相不会冲突
针对firefox ie6 ie7 ie8的css样式hack
以前我们大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7以上对!important可以正确解释,会导致页面没按要求显示!搜索了一下,找到了一个针对IE7、IE8不错的hack方式,IE7使用*+html或*line-height: 23px,IE8使用“\9”来区分,比如:line-height: 26px\9。
CSS可以参照如下定义,注意顺序:
#menu { line-height: 23px; }/* firefox 浏览器实行这句定义 */
#menu { line-height: 26px\9; }/*ie6,ie7,ie8 这句定义主要尖对IE8来hack*/
#menu { *line-height: 23px; }/*ie6,ie7 这句定义主要尖对IE7来hack*/
#menu { _line-height: 23px; }/*ie6 浏览器优先实行这句定义*/
或者写成一句
#menu { line-height:23px; line-height: 26px\9; *line-height: 23px; _line-height:23px; }
或者
* html #menu { line-height: 23px; } /* IE6 浏览器实行这句定义 */
*+html #menu { line-height: 23px; }/* IE7 浏览器实行这句定义*/