手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >CSS不同浏览器兼容问题
CSS不同浏览器兼容问题
摘要:IE5.X/win对box-model的解析是一样的,他们认为width包括了边框(border)和补白(padding),幸运的是这个情况...

IE5.X/win对box-model的解析是一样的,他们认为width包括了边框(border)和补白(padding),幸运的是这个情况在IE6中有了好转
但是IE6在向后兼容的同时也包容了以前的错误,IE6其实有两个核心,在旧的页面前他仍旧表现出对错误的宽容,只有在文档中严格地加上文档类型(DOCTYPE)声明,IE6才能够接受正确的box-model
所以,tantak的hack必须和正确的DOCTYPE同时包含在文档中才能够正常工作
Quote
div.content {
width:400px; //这个是错误的width,所有浏览器都读到了
voice-family: ""}""; //IE5.X/win忽略了""}""后的内容
voice-family:inherit;
width:300px; //包括IE6/win在内的部分浏览器读到这句,新的数值(300px)覆盖掉了旧的
}
html>body .content { //html>body是CSS2的写法
width:300px; //支持CSS2该写法的浏览器有幸读到了这一句
}
现在回到主题,我们经常看到!important和(空格)/**/:组合在一起使用,这个写法有什么奥妙呢?

看刚才那个写法,我这里可以提供另一种写法也能达到这样的效果
Quote
div.content {
width:300px !important; //这个是正确的width,大部分支持!important标记的浏览器使用这里的数值
width(空格)/**/:400px; //IE6/win不解析这句,所以IE6/win仍然认为width的值是300px;而IE5.X/win读到这句,新的数值(400px)覆盖掉了旧的,因为!important标记对他们不起作用
}
html>body .content { //html>body是CSS2的写法
width:300px; //支持CSS2该写法的浏览器有幸读到了这一句
}
同样,这个方法仍必须依靠正确的文档类型声明才能够正常工作,原因在前面已经说过。

文档类型声明就像一个开关,打开向后兼容的未来,而错误使用的话,就是一个Pandora box
 

【CSS不同浏览器兼容问题】相关文章:

css布局中的居中问题

Div+CSS教程:如何闭合浮动元素?

CSS XHTML命名规则

nginx资源定向css js路径问题

如何用!important解决浏览器兼容性问题

CSS书写规范及书写顺序的方法

DIV边距属性在Chrome和IE中不兼容问题

CSS2.0手册(苏沈小雨版)

如何处理div+css布局左右浮动问题

CSS实现让同一行文字和输入框对齐的方法

精品推荐
分类导航