css-hack-不同瀏覽器
1、只有IE7能識別的形式:*+height:100px;
在css style中加註釋:
css {
/* height:100px; */
}
2、IE7 line-height的問題
去掉line-height 和 height
用*+padding的方式實現垂直居中。
3、IE6 line-height失效
當元素內包括span、img、input等元素時失效。如:<div style="height:2px;line-height:26px;"><input style="height:20px;"/></div>
解決方法:在非文字物件上加上margin:(div高度-input高度或預設高度)/2 0; // 即:margin:3px 0px; 測試:適度修改margin的各值後可以相容。
最好的辦法:position:relative/absolute; top: 50%;margin-top: -height/2;居中也可以用百分之五十和一半寬度設定。
4、關於float:right; 在IE6下位置出錯,方法:對位於左邊的span進行margin:0;清除。
<span style="float:right;"></span><span></span>
5、png圖片在IE6下顯示。【但不能解決透明部分的顯示。(待測試)】
應寫上background和filter,且為background。不是background-image。可能後面的filter是針對整個background濾鏡,包括了背景的每個方面。
正確1?:
background: url(../../Images/FMM/max-enabled.png);
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../Images/FMM/max-enabled.png',sizingMethod="crop");
正確2:
#Site {
_ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../images/logo.png');
_background-image: none; /*包括這一行內容*/
}
錯誤:
background-image: url(../../Images/FMM/max-enabled.png);
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../Images/FMM/max-enabled.png',sizingMethod="crop");
說明:
Microsoft.AlphaImageLoader是IE濾鏡的一種,其主要作用就是對圖片進行透明處理。雖然FireFox和IE7以上的IE瀏覽器已經支援透明的PNG圖片,但是就IE5-IE6而言還是有一定的意義。
enabled | : | 可選項。布林值(Boolean)。設定或檢索濾鏡是否啟用。true | false
|
|||||||||
sizingMethod | : | 可選項。字串(String)。設定或檢索濾鏡作用的物件的圖片在物件容器邊界內的顯示方式。
|
|||||||||
src | : | 必選項。字串(String)。使用絕對或相對 url 地址指定背景影象。假如忽略此引數,濾鏡將不會作用。 |
Enabled | : | 可讀寫。布林值(Boolean)。參閱 enabled 屬性。 |
sizingMethod | : | 可讀寫。字串(String)。參閱 sizingMethod 屬性。 |
src | : | 可讀寫。字串(String)。參閱 src 屬性。 |
PNG(Portable Network Graphics)格式的圖片的透明度不妨礙你選擇文字。也就是說,你可以選擇顯示在PNG(Portable Network Graphics)格式的圖片完全透明區域後面的內容。 6、div高度設定為2px,高度遠大於2px的解決辦法: 因為IE6對div內容有預設高度,行高,字型高度。 加上: _line-height:0px;_font-size:0px; 7、height:auto; min-height ie6不支援min-height、height:auto
8、IE6 float:right; 會換行
解決:float:right; 的元素先寫。其他元素後寫。交換html順序。未測試。
或者對其_margin:-px;
9、 margin-top:-1px;在IE6下不起作用,不能遮蓋層,形成tab標籤切換形式。
解決: 修改height、line-height的值,對於li標籤頁加上:_position: relative;
margin為負值,在IE中出現問題。
解決:加上position: relative;zoom:1;
10、firefox rowspan的問題
rowspan出現一條線
在出現問題的地方前面或後面加上<tr></tr>
11、
當五個圖片並排顯示,間隔相同,整體div又居中,左邊左對齊,右邊右對齊。解決方案:
每個圖片佔的區域寬度固定,大於圖片本身寬度,把其右側的寬度加起來。最後一個寬度只有圖片大小。
12、ie中,a固定寬度。多個a排列。問題:不對齊。解決辦法:a標籤之間無空格。在html中寫的方式:<a href=""></a><a href=""></a>。
13、firefox不能獲取:$.css("lineHeight")已經設定的lineheight(不知道寫法是否有問題),只能獲取預設的input高度。line-height在ff中起作用。
解決方法:對於ff——不給元素設定高度。只設置padding-top和padding-bottom。
寫法:
.txtInput { margin-top: 10px; }
@-moz-document url-prefix() {.txtInput { margin-top: 20px; }}
14、對於頁面層多的佈局,不要輕易使用position : relative; 定位。會對float元素造成影響,對其他定位的元素也造成影響。
特別注意對於相容其他瀏覽器垂直居中元素用到:position:relative;top:50%;margin-top: -px;也會受到影響,導致層佈局錯。因為也用到了position定位。
快速解決方法:position:static。把受到影響的relative元素用static再定義一次。
15、IE6下面佈局寬度,可能是記憶體設定display:block; 應該改為display:inline-block;
IE6佈局不顯示內容:可能是zoom:1;未加上,沒有觸發佈局。或者是clearfix沒有寫正確。
IE6下面jquery的toggle出現問題,兩個toggle之間互相影響。解決辦法:在兩個之間加上<br />這樣的間隔。