關于瀏覽器的最離奇的統計結果之一就是Internet Explorer 版本6,7和8共存。截至本文,Internet Explorer各個版本總共占據了大約65%的市場份額。在網站開發社區,這個數字要小很多,統計顯示大概只有40%。
這些統計中比較有趣的部分是,IE6、IE7、IE8之間的數值很接近,這防止了單個Microsoft的瀏覽器占居統治地位——與過去的情況相反。根據這些令人遺憾的統計結果,在為客戶開發網站的時候開發人員對所有當前使用的IE瀏覽器做全面的測試是必要的,而且這樣在個人項目上也可以拉攏更多的用戶。
多謝那些JavaScript庫(框架),跨瀏覽器的Javascript的測試已經像當前形勢所允許的那樣接近完美了。但在CSS開發中還不是這樣,特別是關系到IE目前存在的三個版本。
本文嘗試為希望了解CSS對IE6、IE7、IE8的支持的不同的開發者提供一份詳細的、易用的參考。本參考包含以下情況的概述和兼容情況:
本文不討論:
因此,本文的中心是三個瀏覽器中的不同,而不是必要的支持缺陷。該列表被分為以下五個部分:
body > p { color: #fff;}
子選擇器選擇一個特定父級元素的所有直接子級元素,在上面的例子中,body
是父元素,p
是子元素。
IE7中,如果在父級標簽和子級標簽之間有一個HTML注釋,子選擇器將不會工作。
.class1.class2.class3 { background: #fff;}
鏈類用于送一個HTML元素有多個class聲明的情況,就像這樣:
<div class="class1 class2 class3"><p>Content here.</p></div>
IE6好像支持這種情況,因為它能匹配鏈中的最后一個class到使用該class的元素上,然而,它并不能限制一個使用鏈中所有class的元素。
a[href] { color: #0f0;}
該選擇器允許一個元素被定位只要它有指定的屬性。在上面的例子中,所有的帶有href屬性的a標簽都會被限定,而沒有href屬性的a標簽不會被限定。
h1+p { color: #f00;}
該選擇器定位臨近到指定元素的兄弟標簽。上面的例子將會限定p標簽,但是他必須是h1標簽的兄弟而且要直接尾隨在h1標簽的后面。比如:
<h1>heading</h1><p>Content here.</p><p>Content here.</p>
在上面的代碼中,CSS樣式將只對第一個p有效。因為它是h1的兄弟而且緊跟著h1。第二個p也是h1的一個兄弟,但是它沒有緊跟著h1。
在IE7中,如果在兄弟之間有一個HTML注釋,臨近兄弟選擇器將無效。
h1~p { color: #f00;}
該選擇器定位一個指定元素后面的所有兄弟元素。將此選擇器應用到上面的那個例子,將會對兩個p標簽都有效。當然,如果有一個p元素出現在h1之前,那個p元素不會被匹配。
a:hover span { color: #0f0;}
一個元素可以被:hover偽類后面的選擇器定位,就像后代選擇器一樣。上面的例子,在鼠標懸停的時候,將會改變a元素內的span元素中的文字的顏色。
a:first-child:hover { color: #0f0;}
偽類可以鏈起來以縮小元素選擇。上面的例子會定位每一個父級元素下的第一個a標簽,并將hover偽類P應用到它上。
div:hover { color: #f00;}
:hover
偽類可以應用到任何元素的懸停狀態,而不只是a標簽。
div li:first-child { background: blue;}
改偽類定位每一個指定的元素的父級元素的第一個子元素。
IE7中,如果要定位的第一個子元素之前有HTML注釋,first-child偽類將會無效。
a:focus { border: 1px solid red;}
該偽類定位有鍵盤焦點的所有元素。
#box:before { content: "本段文字在盒子前面";} #box:after { content: "本段文字在盒子后面";}
這兩個偽元素分別在指定元素的前面和后面添加生成的內容,結合content屬性一起使用。
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈