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宣告...