!important和(空格)/**/:的组合技巧及其他
来源:互联网 发布:淘宝先提高销量还是 编辑:程序博客网 时间:2024/04/29 13:07
对于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
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
- CSS技巧:!important和空格的组合技巧及其他
- CSS技巧:important和空格的组合技巧及其他
- !important和(空格)/**/:的组合技巧及其他
- !important和(空格)/**/:的组合技巧及其他
- !important和(空格)/**/:的组合技巧及其他
- Eclipse的查找功能及其他技巧
- Eclipse的查找功能及其他技巧
- 去掉字符串开头,结尾或者中间的空格及其他不想要的字符
- 统计一个字符串中字母、数字,空格及其他的个数
- 输入一串字符,判断英文字母,空格,数字及其他字符的个数
- 华为OJ--统计输入一串字符中数字,字母,空格及其他字符的个数
- 输入一串字符,统计其中字母,数字,空格及其他符号的个数
- 统计字符串中英文字母、汉字、空格、数字及其他字符出现的字数
- 统计字符串内英文、数字、空格及其他字符的个数
- Linux常用命令-Shell技巧及其他
- Builder模式和Brige模式的区别及其他~~
- 语言之争和语言的选择及其他
- Linux下库文件的创建和使用及其他
- 备份恢复数据库
- Microsoft公司的PC操作系统发展历程
- 经典笑话
- VC快捷键
- 用C#实现生成PDF文档
- !important和(空格)/**/:的组合技巧及其他
- FireFox必备插件(十四)-Forecastfox
- asp.net 定制简单的错误处理页面
- Visual Basic.net还是C# ——如何选择.net语言
- php中如何初始化一个数组
- 解决无法显示"文件夹选项"问题的办法
- Exception loading sessions from persistent storage
- 利用AO(ArcObjects)删除选择的要素
- some words