国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

讓IE可以變相支持CSS3選擇器

2024-07-11 08:39:21
字體:
來源:轉載
供稿:網友

別誤會,IE是不支持CSS3高級選擇器,包括最新的IE8,但是CSS選擇器的確是很有用的,它可以大大的簡化我們的工作,提高我們的代碼效率,并讓我們很方便的制作高可維護性的頁面。

然而IE對高級CSS選擇器特別是CSS3選擇器的支持讓我們一直不能將CSS選擇器推廣應用。不過,雖然我們無法左右瀏覽器的市場份額,卻可以通過一些技術改善我們的工作。我們也可以使用其它的一些技術,讓IE可以變相支持CSS3選擇器。

一位來自英國的網頁開發工程師Keith Clark開發了一個JavaScript方案來使IE支持CSS3選擇器。該腳本支持從IE5到IE8的各個版本。

用法

你只需要下載Robert Nyman的DOMAssistant腳本和ie-css3.js并將它們在你的頁面的head標簽中導入,如下:

復制代碼代碼如下:
<head>
<script type=”text/javascript” src=”DOMAssistantCompressed-2.7.4.js”></script>
<script type=”text/javascript” src=”ie-css3.js”></script>
</head>
支持的選擇器

:nth-child
:nth-last-child
:nth-of-type
:nth-last-of-type
:first-child
:last-child
:only-child
:first-of-type
:last-of-type
:only-of-type
:empty

ie-css3的一些限制

樣式表必須通過<link>標簽引入。頁面級的樣式表或者內聯的樣式表將無效。不過你可以在外部樣式文件中使用@import 導入其它樣式文件;
樣式表文件必須和頁面放在同一個域名下面;
使用file://路徑的樣式文件將由于瀏覽器的安全問題而不起作用;
:not()選擇器尚不支持;
該方法不是動態的,樣式被應用之后再改變DOM,將會無效。

如何工作的?

ie-css3.js下載頁面的每一個樣式文件并解析它的CSS3偽選擇器。如果一個選擇器被找到,它就會被替換為同名的CSS class。比如: div:nth-child(2) 將會變成 div._iecss-nth-child-2 。然后,Robert Nyman的DOMAssistant用于尋找匹配元素CSS3選擇器的DOM節點然后將相應的CSS類添加給它。

最終,元素的樣式表會被新的版本替代,然后用CSS3選擇器對相應元素添加對應的樣式。

避免IE的CSS解釋器

根據W3C的規定,一個瀏覽器應該無視它不認識的CSS規則。這就出現一個問題——我們需要利用樣式表文件中的CSS3選擇器,但是IE會將它們丟棄。

為了避免這個問題,每一個樣式文件都會通過XMLHttpRequest下載。這允許該腳本繞開瀏覽器內置的CSS解釋器并能夠讀取原始的CSS文件。

訪問項目主頁
下載ie-css3.js
下載DOMAssistant

替代方案

顯然這個也并非完美的方案,對于Ajax網站來說,它基本上是不能用的,因為在生成的樣式表被應用之后再改變DOM,就不會有效了

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潮州市| 金塔县| 栾城县| 东平县| 浑源县| 元朗区| 东港市| 新晃| 桂平市| 永善县| 鱼台县| 绥化市| 米易县| 萨嘎县| 广河县| 广西| 罗甸县| 天等县| 珲春市| 手游| 满城县| 贵阳市| 新野县| 金塔县| 连江县| 双江| 云霄县| 元朗区| 大兴区| 平山县| 广西| 凤山县| 长沙市| 遵义县| 新余市| 尚义县| 霸州市| 康保县| 新巴尔虎右旗| 五大连池市| 吴忠市|