關於CSS對各個浏覽器兼容已經是老生常談的問題了,本文和大家重點討論一下DIVCSS完美兼容IE6/IE7/FF的通用方法。
DIVCSS完美兼容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頂部有如下聲明:
- <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHtml4.01Transitional//EN"
- "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.