好程式設計師web前端分享CSS Bug、CSS Hack和Filter學習筆記

好程式設計師IT發表於2019-05-05

CSS Bug CSS Hack Filter 學習筆記

1)CSS Bug:CSS樣式在各瀏覽器中解析不一致的情況,或者說CSS樣式在瀏覽器中不能正確顯示的問題稱為CSS bug.

2)CSS Hack: CSS中,Hack是指一種相容CSS在不同瀏覽器中正確顯示的技巧方法,因為它們都屬於個人對CSS程式碼的非官方的修改,或非官方的補丁。有些人更喜歡使用patch(補丁)來描述這種行為。

3)Filter:表示過濾器的意思,它是一種對特定的瀏覽器或瀏覽器組顯示或隱藏規則或宣告的方法。本質上講,Filter是一種用來過濾不同瀏覽器的Hack型別。

* 使用 Hack 帶來的一些副作用

降低了 CSS程式碼的可讀性,增加了程式碼的負擔。

*設計CSS Hack和 Filter通常有兩種方法
1)一種是利用瀏覽器自身的Bug,來隱藏或顯示樣式或宣告;
2)另一種是利用瀏覽器對CSS支援的不完善,如對某些規則或語法還沒有形成支援,來隱藏或顯示樣式。

IE6 常見 CSS 解析 Bug hack

1)圖片間隙

A)在元素中直接插入圖片時,圖片下方會產生約3畫素的間隙(該bug出現在IE6及更低版本中)

hack1:將<img>轉為塊狀元素,給<img>新增宣告:display:block;

hack2:將img設定vertical-align:top/middle/bottom;只要不為baseline

2) 雙倍浮向(雙倍邊距)

描述:當 Ie6及更低版本瀏覽器在解析浮動元素時,會錯誤地把浮向邊邊界加倍顯示。

hack:給浮動元素新增宣告:display:inline;

3)預設高度(IE6)

描述:在 IE6及以下版本中,部分塊元素擁有預設高度(低於16px高度)

hack1:給元素新增宣告:font-size:0;

hack2:給元素新增宣告:overflow:hidden;

4)百分比bug

描述:在 IE6及以下版本中在解析百分比時,會按四捨五入方式計算從而導致50%加50%大於100%的情況。

hack:給右面的浮動元素新增宣告:clear:right;     意思:清除右浮動。 

5)表單元素高度及對齊方式不一致(IE,MOZ,C,O,S)

描述:表單元素行高對齊方式不一致

hack:給表單元素新增宣告:float:left;或vertical-align:top;

2)表單元素中按鈕的解析是按怪異盒模型解析的。

3)直接去掉表單控制元件的邊框時用border:0;border:none;不能相容ie7以下瀏覽器。

*透明寫法

1.opacity:0~1;IE8以上的瀏覽器

2.filter:alpha(opacity=1~100);     IE9及IE9以下的瀏覽器

6)列表階梯BUG(IE6及更低版本的瀏覽器中)

bug1:在給的子元素中使用了Float:left;父元素中沒有設定浮動屬性,li階梯狀效果。

hack:給父元素設定浮動便能解決此問題

bug2:當給LI裡的A轉成塊元素,並設定了固定高度時,且給父元素寫了浮動後在IE6及更低的版本瀏覽器裡會出現垂直顯示。

hack:給a也設定左浮動便可解決。

8)滑鼠指標bug

描述: cursor屬性的hand屬性值只有IE瀏覽器識別,其它瀏覽器不識別該宣告,cursor屬性的pointer屬性值IE6.0以上版本及其它核心瀏覽器都識別該宣告。

hack:如統一某元素滑鼠指標形狀為手型,應新增宣告:cursor:pointer;

擴充套件內容:

滑鼠指標

cursor:crosshair(十字架)

pointer(手形)

move(移動)

e-resize(左右方向)

ne-resize(向右及向上移動)

nw-resize(向上及向左移動)

n-resize(向上移動)

se-resize(向下及向右)

sw-resize(向下及向左)

s-resize(向下移動)

w-resize(向左移動)

text(文字)

wait(等待狀態)

help(幫助)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2643303/,如需轉載,請註明出處,否則將追究法律責任。

相關文章