CSS hack针对IE6IE7firefox显示不同效果.docx
《CSS hack针对IE6IE7firefox显示不同效果.docx》由会员分享,可在线阅读,更多相关《CSS hack针对IE6IE7firefox显示不同效果.docx(8页珍藏版)》请在冰豆网上搜索。
CSShack针对IE6IE7firefox显示不同效果
CSShack:
针对IE6,IE7,firefox显示不同效果
做网站时经常会用到,衡量一个DIV+CSS架构师的水平时,这个也很重要。
区别不同浏览器的CSShack写法:
区别IE6与FF:
background:
orange;*background:
blue;
区别IE6与IE7:
background:
green!
important;background:
blue;
区别IE7与FF:
background:
orange;*background:
green;
区别FF,IE7,IE6:
background:
orange;*background:
green!
important;*background:
blue;
注:
IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别!
important,
IE7能识别*,也能识别!
important;
FF不能识别*,但能识别!
important;
IE6IE7FF
*√√×
!
important×√√
------------------------------------------------------
另外再补充一个,下划线"_",
IE6支持下划线,IE7和firefox均不支持下划线。
IE6IE7FF
*√√×
!
important×√√
_√××
于是大家还可以这样来区分IE6,IE7,firefox
:
background:
orange;*background:
green;_background:
blue;
注:
不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。
CSSHACK
以下两种方法几乎能解决现今所有HACK.
1,!
important
随着IE7对!
important的支持,!
important方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)
#wrapper
{
width:
100px!
important;/*IE7+FF*/
width:
80px;/*IE6*/
}
2,IE6/IE77对FireFox
*+html与*html是IE特有的标签,firefox暂不支持.而*+html又为IE7特有标签.
#wrapper
{
#wrapper{width:
120px;}/*FireFox*/
*html#wrapper{width:
80px;}/*ie6fixed*/
*+html#wrapper{width:
60px;}/*ie7fixed,注意顺序*/
}
注意:
*+html对IE7的HACK必须保证HTML顶部有如下声明:
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN" "http:
//www.w3.org/TR/html4/loose.dtd">
二、万能float闭合(非常重要!
)
关于clearfloat的原理可参见[HowToClearFloatsWithoutStructuralMarkup]
将以下代码加入GlobalCSS中,给需要闭合的div加上>
/*ClearFix*/
.clearfix:
after
{
content:
".";
display:
block;
height:
0;
clear:
both;
visibility:
hidden;
}
.clearfix
{
display:
inline-block;
}
/*HidefromIEMac*/
.clearfix{display:
block;}
/*EndhidefromIEMac*/
/*endofclearfix*/
关于闭合浮动元素(clearingfloat)的方法现在已经很多了,个人认为简单实用的方法就是使用:
after伪类动态的嵌入一个用于清除浮动的元素,可惜代码量太大了,看上去不够简洁。
现在看到有个方法超级简单。
介绍一下这个方法。
原文在:
http:
//annevankesteren.nl/2005/03/clearing-floats
这一方面的原理是,外围元素之所以不能很好的延伸,问题出在了overflow上,因为overflow不可见(见W3C的解释)。
现在只要将给外围元素添加一个“overflow:
auto”,就可以解决问题,结果是除了IE,真的可以解决。
下来就要解决ID的问题了,再加上“_height:
1%”,这个问题就完全解决了。
下面的例子作为比较
1、没有闭合浮动元素;2、非IE下闭合浮动元素;3、完全闭合元素。
相关代码如下:
XHTML代码:
ExampleSourceCode[ww
]
Floatleft