1. 程式人生 > >css-hack-不同瀏覽器

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.AlphaImageLoaderIE濾鏡的一種,其主要作用就是對圖片進行透明處理。雖然FireFox和IE7以上的IE瀏覽器已經支援透明的PNG圖片,但是就IE5-IE6而言還是有一定的意義。

語法: filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL ) 屬性:
enabled :  可選項。布林值(Boolean)。設定或檢索濾鏡是否啟用。true | false
true :  預設值。濾鏡啟用。
false :  濾鏡被禁止。
sizingMethod :  可選項。字串(String)。設定或檢索濾鏡作用的物件的圖片在物件容器邊界內的顯示方式。
crop :  剪下圖片以適應物件尺寸。
image :  預設值。增大或減小物件的尺寸邊界以適應圖片的尺寸。
scale :  縮放圖片以適應物件的尺寸邊界。
src :  必選項。字串(String)。使用絕對或相對 url 地址指定背景影象。假如忽略此引數,濾鏡將不會作用。
特性:
Enabled :  可讀寫。布林值(Boolean)。參閱 enabled 屬性。
sizingMethod :  可讀寫。字串(String)。參閱 sizingMethod 屬性。
src :  可讀寫。字串(String)。參閱 src 屬性。
說明: 在物件容器邊界內,在物件的背景和內容之間顯示一張圖片。並提供對此圖片的剪下和改變尺寸的操作。如果載入的是PNG(Portable Network Graphics)格式,則0%-100%的透明度也被提供。
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 />這樣的間隔。