溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

常見css hack實(shí)例分析

發(fā)布時間:2022-07-29 09:55:46 來源:億速云 閱讀:108 作者:iii 欄目:web開發(fā)

這篇“常見css hack實(shí)例分析”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“常見css hack實(shí)例分析”文章吧。

常見css hack有三種:1、條件hack,語法“<!--[if <條件關(guān)鍵字>? IE <版本號>?]>HTML代碼塊<![endif]-->”;2、屬性前綴hack,語法“selector{<hack>?屬性名:屬性值<hack>?;}”;3、選擇器前綴hack,語法“<hack> selector{ 樣式代碼 }”。

本教程操作環(huán)境:windows7系統(tǒng)、CSS3&&HTML5版、Dell G3電腦。

CSS hack 是通過在 CSS 樣式中加入一些特殊的符號,讓不同的瀏覽器識別不同的符號 (什么樣的瀏覽器識別什么樣的符號是有標(biāo)準(zhǔn)的,CSS hack 就是讓你記住這個標(biāo)準(zhǔn)),,以達(dá)到應(yīng)用不同的 CSS 樣式的目的。

CSS hack 是因為現(xiàn)有瀏覽器對標(biāo)準(zhǔn)的解析不同,為了兼容各瀏覽器,所采用的一種補(bǔ)救方法.。為了兼容低版本瀏覽器器的 CSS 解析 BUG,不得不把代碼寫的很繞, 直接增加了維護(hù)成本。

CSS hack 是一種類似作弊的手段, 以欺騙瀏覽器的方式達(dá)到兼容的目的, 是用瀏覽器的兼容性差異來解決瀏覽器的兼容性問題。

常用的css hack有三種:條件hack、屬性hack、選擇符hack

1、條件hack

語法:

<!--[if <keywords>? IE <version>?]>
HTML代碼塊
<![endif]-->

取值:

<keywords>

if條件共包含6種選擇方式:是否、大于、大于或等于、小于、小于或等于、非指定版本

  • 是否:指定是否IE或IE某個版本。關(guān)鍵字:

  • 大于:選擇大于指定版本的IE版本。關(guān)鍵字:gt(greater than)

  • 大于或等于:選擇大于或等于指定版本的IE版本。關(guān)鍵字:gte(greater than or equal)

  • 小于:選擇小于指定版本的IE版本。關(guān)鍵字:lt(less than)

  • 小于或等于:選擇小于或等于指定版本的IE版本。關(guān)鍵字:lte(less than or equal)

  • 非指定版本:選擇除指定版本外的所有IE版本。關(guān)鍵字:!

如不想在非IE中看到某區(qū)域,可這樣寫:

<!--[if IE]>
<p>你在非IE中將看不到我的身影</p>
<![endif]-->

if條件6種選擇方式的使用示例

是否,示例代碼:

<!--[if IE]>
<style>
.test{color:red;}
</style>
<![endif]-->

大于,示例代碼:

<!--[if gt IE 6]>
<style>
.test{color:red;}
</style>
<![endif]-->

大于或等于,示例代碼:

<!--[if gte IE 6]>
<style>
.test{color:red;}
</style>
<![endif]-->

小于,示例代碼:

<!--[if lt IE 7]>
<style>
.test{color:red;}
</style>
<![endif]-->

小于或等于,示例代碼:

<!--[if lte IE 7]>
<style>
.test{color:red;}
</style>
<![endif]-->

非指定版本,示例代碼:

<!--[if ! IE 7]>
<style>
.test{color:red;}
</style>
<![endif]-->

2、屬性前綴hack

語法:selector{<hack>?property:value<hack>?;}

取值:

  • _:選擇IE6及以下。連接線(中劃線)(-)亦可使用,為了避免與某些帶中劃線的屬性混淆,所以使用下劃線(_)更為合適。

  • *:選擇IE7及以下。諸如:(+)與(#)之類的均可使用,不過業(yè)界對(*)的認(rèn)知度更高

  • \9:選擇IE6+

  • \0:選擇IE8+和Opera

[;property:value;];:選擇webkit核心瀏覽器(Chrome,Safari)。IE7及以下也能識別。中括號內(nèi)外的3個分號必須保留,第一個分號前可以是任意規(guī)則或任意多個規(guī)則[;color:#f00;]; 與 [color:#f00;color:#f00;]; 與 [margin:0;padding:0;color:#f00;]; 是等價的。生效的始終是中括號內(nèi)的最后一條規(guī)則,所以通常選用第一種寫法最為簡潔。

說明:

選擇不同的瀏覽器及版本

  • 盡可能減少對CSS Hack的使用。Hack有風(fēng)險,使用需謹(jǐn)慎

  • 通常如未作特別說明,本文檔所有的代碼和示例的默認(rèn)運(yùn)行環(huán)境都為標(biāo)準(zhǔn)模式。

  • 一些CSS Hack由于瀏覽器存在交叉認(rèn)識,所以需要通過層層覆蓋的方式來實(shí)現(xiàn)對不同瀏覽器進(jìn)行Hack的。如下面這個例子:

.test{
    color:#090\9; /* For IE8+ */
    *color:#f00;  /* For IE7 and earlier */
    _color:#ff0;  /* For IE6 and earlier */
}

3、選擇器前綴hack

語法:<hack> selector{ 樣式代碼 }

說明:

選擇不同的瀏覽器及版本

  • 盡可能減少對CSS Hack的使用。Hack有風(fēng)險,使用需謹(jǐn)慎

  • 通常如未作特別說明,本文檔所有的代碼和示例的默認(rèn)運(yùn)行環(huán)境都為標(biāo)準(zhǔn)模式。

  • 一些CSS Hack由于瀏覽器存在交叉認(rèn)識,所以需要通過層層覆蓋的方式來實(shí)現(xiàn)對不同瀏覽器進(jìn)行Hack的。

* html .test{color:#090;}       /* For IE6 and earlier */
* + html .test{color:#ff0;}     /* For IE7 */
.test:lang(zh-cn){color:#f00;}  /* For IE8+ and not IE */
.test:nth-child(1){color:#0ff;} /* For IE9+ and not IE */

以上就是關(guān)于“常見css hack實(shí)例分析”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI