Css Hack的定義以及用法

2022-03-24 18:22:40 字數 2082 閱讀 2689

css hack的定義以及用法

1、什麼是css hack

由於不同的瀏覽器,比如internet explorer 6,internet explorer 7,mozilla firefox

等,對css的解析認識不一樣,因此會導致生成的頁面效果不一樣,得不到我們所需要的頁面效果。這個時候我們就需要針對不同的瀏覽器去寫不同的css,讓它能夠同時相容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁面效果。這個針對不同的瀏覽器寫不同的css code的過程,就叫css hack!

問題①  css hack用來解決有些css屬性在不同瀏覽器中顯示的效果不一樣的問題,如

塊級元素浮動後margin屬性在ie6中顯示的距離會比其他瀏覽器中顯示的距離寬2倍,也就是說margin-left:20px;在非ie6瀏覽器

中顯示的距離是設定的值20px,而在ie6瀏覽器

中實際的

顯示距離是40px;

所以要想margin-left的值在所有瀏覽器中都顯示是20px的寬度,寫法

應為: display:inline;解決的是ie6雙邊距的問題

.kw  

問題②  ie6瀏覽器不支援最大最小寬高(min/max-height)

解決方法:

為ie6單獨設定hack,即_height:最小高度值;_width:

最小寬度值(對於ie6,當實際寬高超出定義的寬高時,元素會自動調整寬高)。對於最大高度和最大寬度,沒有必

要設定相容

常見的hack如下

hack

示例ie6

ie7ie8

**color

yesyesno+

+color

yesyesno-

-color

yesnono_

_color

yesnono#

#color

yesyes

no\0

color\0

nono

yes\9

color\9

yesyes

yes!important

color:blue !important;

color:green;

noyes

yesie6支援重定義中的!important,例如:

.yanse 

.yanse 

你將會發現定義了樣式class="yanse"時,在ie6下,字型顯示為紅色(red)

但不支援同一定義中的!important。例如:

.yanse 

此時在ie6下不支援,你將會發現定義了樣式class="yanse"時,字型顯示為黑色(#000)。

3、我們也可以反過來利用css hack為不同版本的瀏覽器定製編寫不同的css效果。

以顏色為例來

為ff、ie8、ie7、ie6編寫不用的效果

:.csshack

這裡的"\9"可以區別所有ie和firefox.

"*" ie6、ie7可以識別.ie8、firefox不能.

"_" ie6可以識別"_",ie7、ie8、firefox不能.

ie7、ie8都可識別!important。

如此,就可以完全區分開ie6、ie7、ie8、firefox了.

css hack書寫順序,一般是將適用範圍廣、被識別能力強的css定義在前面

。所以上面例子的

書寫順序為:

火狐瀏覽器的寫法寫在最前面,ie6的寫法要在最後面用於覆蓋,其他瀏覽器寫在中間。

PHP 常量定義以及用法

define define是函式,不能在物件中定義,但可在類中定義使用 define cl 10 static靜態常量 是乙個變數,可以常量的語法訪問,就是 可以沒有例項化也能訪問 public static a 呵呵 const const是乙個語言結構,編譯時要比define快,是為全域性常量,...

fastjson的常用用法以及自定義排序

fastjson的四種常用方法 json 轉 pojo public static t getobject string pojo,classtclass pojo 轉 json public static string getjson t tresponse list 轉 json public ...

CSS Hack的資料收集

為了不同瀏覽器的 效果,我們當然沒必要為每個瀏覽器的不同版本寫乙個樣式,這裡我們利用 ie條件注釋 找了一些相關的css hack後,總結的幾個方法。1.區別ff和ie 1 1首先,當然是 important 可以提公升指定樣式規則的應用優先權,如下面的例子 插入 div因為 important宣告...