|
導(dǎo)讀網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立... 網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過(guò)結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語(yǔ)言之所以稱為超文本標(biāo)記語(yǔ)言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。 我們?cè)陧?yè)面布局時(shí),會(huì)用到很多CSS樣式,但是有些樣式在火狐可以正常顯示,在谷歌就不行,這時(shí)候就涉及到瀏覽器的兼容性,這篇文章就和大家講講什么是CSS hack,以及CSS hack的分類和用法,有需要的朋友可以參考一下,希望對(duì)你有用。什么是CSS hack CSS hack由于不同的瀏覽器,比如IE6,IE7,Firefox等,對(duì)CSS的解析認(rèn)識(shí)不一樣,因此會(huì)導(dǎo)致生成的頁(yè)面效果不一樣,得不到我們所需要的頁(yè)面效果。 這個(gè)時(shí)候我們就需要針對(duì)不同的瀏覽器去寫(xiě)不同的CSS,讓它能夠同時(shí)兼容不同的瀏覽器,能在不同的瀏覽器中也能得到我們想要的頁(yè)面效果。 CSS hack分類 hack主要分為CSS選擇器hack、CSS屬性hack、IE條件注釋hack。 CSS選擇器hack:比如 IE6能識(shí)別*html .class{},IE7能識(shí)別*+html .class{}或者*:first-child+html .class{}等。 CSS屬性hack:比如 IE6能識(shí)別下劃線"_"和星號(hào)" * ",IE7能識(shí)別星號(hào)" * ",但不能識(shí)別下劃線"_",而firefox兩個(gè)都不能認(rèn)識(shí)等。 IE條件注釋hack: 針對(duì)所有IE:<!--[if IE]><!--您的代碼--><![endif]--> 針對(duì)IE6及以下版本:<!--[if lt IE 7]><!--您的代碼--><![endif]--> 這類Hack不僅對(duì)CSS生效,對(duì)寫(xiě)在判斷語(yǔ)句里面的所有代碼都會(huì)生效。 書(shū)寫(xiě)順序,一般是將識(shí)別能力強(qiáng)的瀏覽器的CSS寫(xiě)在前面。 用法 比如要分辨IE6和firefox兩種瀏覽器,可以這樣寫(xiě): div{
background:green; /* for firefox */
*background:red; /* for IE6 */ (both IE6 && IE7)
}可以看到在IE6中看到是紅色的,在firefox中看到是綠色的。 在firefox中,它是識(shí)別不了后面的那個(gè)帶星號(hào)的東西是什么的,于是將它過(guò)濾掉,解析得到的結(jié)果是:div{background:green},于是理所當(dāng)然這個(gè)div的背景是綠色的。 在IE6中,它兩個(gè)background都能識(shí)別出來(lái),它解析得到的結(jié)果是:div{background:green;background:red;},于是根據(jù)優(yōu)先級(jí)別,處在后面的red的優(yōu)先級(jí)高,于是當(dāng)然這個(gè)div的背景顏色就是紅色的了。 瀏覽器識(shí)別 <!DOCTYPE html>
<html>
<head>
<title>Css Hack</title>
<style>
#test
{
width:300px;
height:300px;
background-color:blue; /*firefox*/
background-color:red\9; /*all ie*/
background-color:yellow\0; /*ie8*/
+background-color:pink; /*ie7*/
_background-color:orange; /*ie6*/
}
:root #test { background-color:purple\9; } /*ie9*/
@media all and (min-width:0px){ #test {background-color:black\0;} } /*opera*/
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} } /*chrome and safari*/
</style>
</head>
<body>
<div id="test">test</div>
</body>
</html>上面這段代碼大家可以直接copy出來(lái),保存成html在各瀏覽器試試。分析: (1)background-color:blue; 各個(gè)瀏覽器都認(rèn)識(shí),這里給firefox用; (2)background-color:red\9; \9所有的ie瀏覽器可識(shí)別; (3)background-color:yellow\0; \0 是留給ie8的,但筆者測(cè)試,發(fā)現(xiàn)最新版opera也認(rèn)識(shí),汗。。。不過(guò)且慢,后面自有hack寫(xiě)了給opera認(rèn)的,所以,\0我們就認(rèn)為是給ie8留的; (4)+background-color:pink; + ie7定了; (5)_background-color:orange; _專門(mén)留給神奇的ie6; (6):root #test { background-color:purple\9; } :root是給ie9的,網(wǎng)上流傳了個(gè)版本是 :root #test { background-color:purple\0;},新版opera也認(rèn)識(shí),所以經(jīng)筆者反復(fù)驗(yàn)證最終ie9特有的為:root 選擇符 {屬性\9;} (7)@media all and (min-width:0px){ #test {background-color:black\0;} } 這個(gè)是老是跟ie搶著認(rèn)\0的神奇的opera,必須加個(gè)\0,不然firefox,chrome,safari也都認(rèn)識(shí)。。。 (8)@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }最后這個(gè)是瀏覽器新貴chrome和safari的。 以上就是關(guān)于CSS hack的一些小知識(shí)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!