本文向大家描述一下DIV CSS完美兼容IE6/IE7/FF的通用方法,相信本文介绍一定会让你有所收获。
DIV CSS完美兼容IE6/IE7/FF的通用方法
关于CSS对各个浏览器兼容已经是老生常谈的问题了,网络上的教程遍地都是.以下内容没有太多新颖,纯属个人总结,希望能对初学者有一定的帮助.
一、CSSHACK
以下两种方法几乎能解决现今所有HACK.
1,!important
随着IE7对!important的支持,!important方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)
以下为引用的内容:
- <style>
- #wrapper
- {
- width:100px!important;/*IE7+FF*/
- width:80px;/*IE6*/
- }
- style>
2,IE6/IE77对FireFox
以下为引用的内容:
*+html与*html是IE特有的标签,firefox暂不支持.而*+html又为IE7特有标签.
- <style>
- #wrapper
- {
- #wrapper{width:120px;}/*FireFox*/
- *html#wrapper{width:80px;}/*ie6fixed*/
- *+html#wrapper{width:60px;}/*ie7fixed,注意顺序*/
- }
- style>
注意:
*+html对IE7的HACK必须保证HTML顶部有如下声明:
- "http://www.w3.org/TR/html4/loose.dtd">
二、万能float闭合
关于clearfloat的原理可参见[HowToClearFloatsWithoutStructuralMarkup]
将以下代码加入GlobalCSS中,给需要闭合的div加上class="clearfix"即可,屡试不爽.
以下为引用的内容:
- <style>
- /*ClearFix*/
- .clearfix:after
- {
- content:".";
- display:block;
- height:0;
- clear:both;
- visibility:hidden;
- }
- .clearfix
- {
- display:inline-block;
- }
- /*HidefromIEMac*/
- .clearfix{display:block;}
- /*EndhidefromIEMac*/
- /*endofclearfix*/
- style>
三、其他兼容技巧
1,FF下给div设置padding后会导致width和height增加,但IE不会.(可用!important解决)
2,居中问题.
1).垂直居中.将line-height设置为当前div相同的高度,再通过vertical-align:middle.(注意内容不要换行.)
2).水平居中.margin:0auto;(当然不是万能)
3).若需给a标签内内容加上样式,需要设置display:block;(常见于导航标签)
4).FF和IE对BOX理解的差异导致相差2px的还有设为float的div在ie下margin加倍等问题.
5).ul标签在FF下面默认有list-style和padding.最好事先声明,以避免不必要的麻烦.(常见于导航标签和内容列表)
6).作为外部wrapper的div不要定死高度,最好还加上overflow:hidden.以达到高度自适应.
7).关于手形光标.cursor:pointer.而hand只适用于IE.
【编辑推荐】
- 探究IE7beta2的CSS兼容性
- IE6、IE7、Firefox中margin问题解决办法
- 探究IE8与IE7实现共存的两种方法
- CSS兼容:解决IE6、IE7和IE8的兼容问题妙招
- 将XHTML+CSS页面转换为打印机页面技巧