网站建设公司,北京网站建设
北京网站建设   添加收藏 www.ok009.com设为首页 北京网站建设
网站建设报价
 
蜂巢互联网
  网站建设 >> WEB标准专栏  

WEB标准-!important和(空格)/**/:的组合技巧及其他


作者:yangguang lan    文章来源:不明   点击数:532     发布时间:2007-7-3 9:28:40

先温习一下对于IE的box-model的破解
IE box-model这个臭名昭著的bug存在于IE6/Win以前的每一只版本,这个虫子直到tantak发布了流传最为广泛的那个hack才开始被驯服

http://www.tantek.com/CSS/Examples/boxmodelhack.html
IE5.X/win对box-model的解析是一样的,他们认为width包括了边框(border)和补白(padding),幸运的是这个情况在IE6中有了好转
但是IE6在向后兼容的同时也包容了以前的错误,IE6其实有两个核心,在旧的页面前他仍旧表现出对错误的宽容,只有在文档中严格地加上文档类型(DOCTYPE)声明,IE6才能够接受正确的box-model
所以,tantak的hack必须和正确的DOCTYPE同时包含在文档中才能够正常工作


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和(空格)/**/:组合在一起使用,这个写法有什么奥妙呢?

看刚才那个写法,我这里可以提供另一种写法也能达到这样的效果


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

相关链接:北京网站建设



蜂巢互联网关联导航
蜂巢互联网
 网站建设套餐介绍  
 用户评价  
 成功案例  
 服务报价  
 建站流程  
 业务介绍  
 最新案例  
 WEB标准专栏  
 中国网站建设公司目录  
 网站建设相关知识热点与重点推荐  
 分类案例  

2008. 十月
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31



 
设计团队 | 联系我们 | 关于我们 | 网站地图 | 实习培训 | 人才招聘 | 蜂巢新闻 |网站点评 
 蜂巢联合科技有限公司 版权所有 网站建设,北京网站建设
网站建设,北京网站建设  经营许可证 
京ICP证050691号 
本站关键词:网站建设 北京网站建设 网站建设 网站制作 北京网站建设公司 网站建设公司 网站建设 上海网站建设 网页设计 
 咨询热线:(010)51265897/52721601/52721602 客服热线:(010) 82254248/82254548 传真: 010-51265897转822 

Update Oct 12, 2008