一些hack css 的寫法

E8及如下版本有一些和!imporant有關的怪僻,它容許一個賦值優先級更高。IE7及更早版本接受任意字符串替代important, 而且會正常處理該值,而其它瀏覽器則會忽略。html

/* 在IE8及如下版本下設文字爲藍色,其它瀏覽器中爲黑色 */瀏覽器

body {spa

color: black;firefox

color: blue !ie;htm

}字符串

類似地,IE8及更早版本接受在!important聲明後面的非字母符號,而其它瀏覽器會忽略它。import

body {hack

color: black;im

color: blue !important!;註釋

}

HTML元素是W3C標準DOM (Document Object Model)的根元素,可是IE 4至6的版本中還有一個神祕的父元素。徹底兼容的瀏覽器會忽略這個* html選擇器,但IE4-6卻會對它正常處理。這樣就能夠爲這些版本的瀏覽器指定特別的規則。好比,這個規則能夠特別指定IE4-6中的文字大小,但對 其它瀏覽器不起做用。

* html p {font-size: 5em; }

這個HACK使用了徹底有效的CSS。

子選擇器hack

(適用於IE6及如下版本)

IE6和早期的版本不支持「子選擇器」(>),利用這個咱們能夠爲其它瀏覽器指定特別的規則。舉例來講,這個規則可讓段落文字在 firefox 變成藍色,但在IE7以前的版本里卻不能。

html > body p { color: blue; }

雖然IE7增長了對子選擇器的支持,但人們發現了新的hack能夠把IE7也排除。當一個空的註釋緊跟在子選擇器的後面重複的時候,IE7會不 識別後面的規則,就和較早版本的瀏覽器同樣。

html >/**/ body p { color: blue; }

雖然IE7再也不識別之前的* html hack,但它使用了一個類似的新的hack。

*:first-child+html p { font-size: 5em; }

或者:

*+html p { font-size: 5em; }

此代碼只適用於IE7,不適用於其它任何瀏覽器。注意這個HACK只在IE7標準模型裏工做正常,在怪異模式下不能用。這個hack也被IE8 的兼容模式(至關於IE7的標準模式)所支持。和星號HTML hack同樣,它也使用了有效的CSS。

IE6及如下版本有一個!important帶來的問題,當在同一段代碼塊中同一元素的同一屬性有了不一樣的值,本應結果是第二個值被第一個取 代,但IE6及更低版本並不這麼作。

/* 在IE6及更低版本中設文字爲藍色 */

body {

color: black !important;

color: blue;

}

相關文章
相關標籤/搜索