一、CSSHACK以下兩種方法幾乎能解決現今所有HACK.
1、!important
隨著IE7對!important的支持,!important方法現在只針對IE6的HACK.【注:注意寫法.記得該聲明位置需要提前.】
2、IE6/IE7對Firefox
*+html與*html是IE特有的標簽,Firefox暫不支持.而*+Html又為IE7特有標簽.
注意:*+html對IE7的HACK必須保證Html
頂部有如下聲明:
"http://www.w3.org/TR/Html4/loose.dtd">
二、其他的一些技巧
技巧一:
1、Firefox下給div設置padding後會導致width和height增加,但IE不會.(可用!important解決)
2、居中問題.
1).垂直居中.將line-height設置為當前div相同的高度,再通過vertical-align:middle.(注意內容不要換行.)
2).水平居中.margin:0auto;(當然不是萬能)
3、若需給a標簽內內容加上樣式,需要設置display:block;
(常見於導航標簽)
4、Firefox和IE對BOX理解的差異導致相差2px的還有設為float的div在IE下margin加倍等問題.
5、ul標簽在Firefox下面默認有list-style和padding.最好事先聲明,以避免不必要的麻煩.(常見於導航標簽和內容列表)
6、作為外部wrapper的div不要定死高度,最好還加上overflow:hidden.以達到高度自適應.
7、關於手形光標.cursor:pointer.而hand只適用於IE.
技巧二:針對Firefoxie6IE7的CSS樣式
現在大部分都是用!important來hack,對於ie6和Firefox測試可以正常顯示,但是ie7對!important可以正確解釋,會導致頁面沒按要求顯示!找到一個針對IE7不錯的hack方式就是使用“*+Html”,現在用IE7浏覽一下,應該沒有問題了。
現在寫一個CSS可以這樣:
- #1{
- color:#333;
- }/*Moz*/
- *Html#1{
- color:#666;
- }/*IE6*/
- *+Html#1{
- color:#999;
- }/*IE7*/
那麼在Firefox下字體顏色顯示為#333,IE6下字體顏色顯示為#666,IE7下字體顏色顯示為#999。
技巧三:CSS布局中的居中問題
主要的樣式定義如下:
- body{
- text-align:center;
- }
- #center{
- margin-right:auto;
- margin-left:auto;
- }
說明:
首先在父級元素定義TEXT-ALIGN:center;這個的意思就是在父級元素內的內容居中;對於IE這樣設定就已經可以了。但在mozilla中不能居中。解決辦法就是在子元素定義時候設定時再
加上“MARGIN-RIGHT:auto;MARGIN-LEFT:auto;”需要說明的是,如果你想用這個方法使整個頁面要居中,建議不要套在一個DIV裡,你可以依次拆出多個div,
只要在每個拆出的div裡定義MARGIN-RIGHT:auto;MARGIN-LEFT:auto;就可以了。