常用的CSS兼容技巧
不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。这里我们就需要注意CSS书写技巧了。
这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack。
由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。
比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法
CSS书写技巧-1:!important
!important作用是提高指定样式规则的应用优先权。
IE7以及所有标准浏览器能识别!important
区别IE6与IE7与其他浏览器
http://www.w3.org/TR/html4/loose.dtd">/*****************************************************************************/
/*****************************************************************************/
以下是一些常用的CSS兼容技巧
1)火狐下给div设置padding后会导致width和height 增加, 但IE不会.(可用!important解决)
2)垂直居中,将 line-height设置为当前div相同的高度, 再通过vertical-align: middle;( 注意内容不要换行)
3)水平居中,margin:0 auto;(当然不是万能)
4)若需给a标签内内容加上样式, 需要设置 display: block;(常见于导航标签)
5)浮动IE产生的双倍距离
在IE下,当一个div设置了float后,然后给他设置margin,就会出现加倍的margin,解决的办法是给div设置
7)ul标签在FF下面默认有list-style和padding, 最好事先声明, 以避免不必要的麻烦;(常见于导航标签和内容列表)
8)作为外部wrapper的div不要定死高度, 最好还加上 overflow: hidden;以达到高度自适应;
9)页面的最小宽度
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个, 而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:
然后CSS这样设计:
- #container{min-width:600px;width:expression(document.body.clientWidth<600?"600px":"auto");}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
CSS书写技巧-10:万能float闭合
将以下代码加入Global CSS 中,给需要闭合的div加上
- <style> /*ClearFix*/ .clearfix:after { content:"."; display:block; height:0; clear:both; visibility:hidden; } *html.clearfix{ height:1%; } *+html.clearfix{ height:1%; } .clearfix { display:inline-block; } /*HidefromIEMac*/ .clearfix{display:block;} /*EndhidefromIEMac*/ /*endofclearfix*/ </style> /**********************************************/ <divid="wrap"> <divclass="column_left"> <h1>Floatleft</h1> </div> <divclass="column_right"> <h1>Floatright</h1> </div> </div> #wrap{border:6px#cccsolid;overflow:auto;_height:1%;} .column_left{float:left;width:20%;padding:10px;} .column_right{float:right;width:75%;padding:10px;border-left:6px#eeesolid;}
来源:常用的CSS兼容技巧 | web启点