CSS对IE6、IE7、IE8支持详细的易用的参考
來源:http://www.webjx.com/css/divcss-17091.html
?
中文原文:CSS在Internet Explorer 6, 7 和8中的差別
譯自:CSS Differences in Internet Explorer 6, 7 and 8
關(guān)于瀏覽器的最離奇的統(tǒng)計結(jié)果之一就是Internet Explorer ? 版本6,7和8共存。截至本文,Internet Explorer各個版本總共占據(jù)了大約65%的市場份額 。在網(wǎng)站開發(fā)社區(qū),這個數(shù)字要小很多,統(tǒng)計顯示大概只有40% 。
?
這些統(tǒng)計中比較有趣的部分是,IE6、IE7、IE8之間的數(shù)值很接近,這防止了單個Microsoft的瀏覽器占居統(tǒng)治地位——與過去的情況相反。根據(jù)這些令人遺憾的統(tǒng)計結(jié)果,在為客戶開發(fā)網(wǎng)站的時候開發(fā)人員對所有當前使用的IE瀏覽器做全面的測試是必要的 ,而且這樣在個人項目上也可以拉攏更多的用戶。
多謝那些JavaScript庫(框架),跨瀏覽器的Javascript的測試已經(jīng)像當前形勢所允許的那樣接近完美了。但在CSS開發(fā)中還不是這樣,特別是關(guān)系到IE目前存在的三個版本。
本文嘗試為希望了解CSS對IE6、IE7、IE8的支持的不同的開發(fā)者提供一份詳細的、易用的參考 。本參考包含以下情況的概述和兼容情況:
- 三個瀏覽器中的一個 支持而另外兩個 不支持的條目
- 三個瀏覽器中的兩個 支持而另外一個 不支持的條目
本文不討論:
- 三個瀏覽器都不支持的條目
- 私有屬性
因此,本文的中心是三個瀏覽器中的不同 ,而不是必要的支持缺陷。該列表被分為以下五個部分:
- 選擇器與繼承
- 偽類與偽元素
- 屬性支持
- 其它各種技術(shù)
- 重要bug和不兼容問題
選擇器與繼承
子選擇器
示例
body >p {color :#fff ;
}
描述
子選擇器選擇一個特定父級元素的所有直接子級元素,在上面的例子中,body是父元素,p是子元素。
支持情況
IE6No IE7
Yes IE8
Yes
Bugs
IE7中,如果在父級標簽和子級標簽之間有一個HTML注釋,子選擇器將不會工作。
鏈類
示例
.class1 .class2 .class3{background :#fff ;
}
描述
鏈類用于送一個HTML元素有多個class聲明的情況,就像這樣:
<divclass = "class1 class2 class3" ><p > Content here.</ p >
</ div >
支持情況
IE6No IE7
Yes IE8
Yes
Bugs
IE6好像支持這種情況,因為它能匹配鏈中的最后一個class到使用該class的元素上,然而,它并不能限制一個使用鏈中所有class的元素。
屬性選擇器
示例
a[ href]{color :#0f0 ;
}
描述
該選擇器允許一個元素被定位只要它有指定的屬性。在上面的例子中,所有的帶有href屬性的a標簽都會被限定,而沒有href屬性的a標簽不會被限定。
支持情況
IE6No IE7
Yes IE8
Yes
臨近兄弟選擇器
示例
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。
支持情況
IE6No IE7
Yes IE8
Yes
Bugs
在IE7中,如果在兄弟之間有一個HTML注釋,臨近兄弟選擇器將無效。
普通兄弟選擇器
示例
h1~p {color :#f00 ;
}
描述
該選擇器定位一個指定元素后面的所有兄弟元素。將此選擇器應用到上面的那個例子,將會對兩個p標簽都有效。當然,如果有一個p元素出現(xiàn)在h1之前,那個p元素不會被匹配。
支持情況
IE6No IE7
Yes IE8
Yes
偽類和偽元素
:hover后面的后代選擇器
示例
a:hover span {color :#0f0 ;
}
描述
一個元素可以被:hover偽類后面的選擇器定位,就像后代選擇器一樣。上面的例子,在鼠標懸停的時候,將會改變a元素內(nèi)的span元素中的文字的顏色。
支持情況
IE6No IE7
Yes IE8
Yes
鏈偽類
示例
a:first-child :hover {color :#0f0 ;
}
描述
偽類可以鏈起來以縮小元素選擇。上面的例子會定位每一個父級元素下的第一個a標簽,并將hover偽類P應用到它上。
支持情況
IE6No IE7
Yes IE8
Yes
非錨點元素中的:hover
示例
div:hover {color :#f00 ;
}
描述
:hover 偽類可以應用到任何元素的懸停狀態(tài),而不只是a標簽。
支持情況
IE6No IE7
Yes IE8
Yes
:first-child偽類
示例
div li:first-child {background :blue ;
}
描述
改偽類定位每一個指定的元素的父級元素的第一個子元素。
支持情況
IE6No IE7
Yes IE8
Yes
Bugs
IE7中,如果要定位的第一個子元素之前有HTML注釋,first-child偽類將會無效。
:focus偽類
示例
a:focus {border :1pxsolidred ;
}
描述
該偽類定位有鍵盤焦點的所有元素。
支持情況
IE6No IE7
No IE8
Yes
:before 和:after 偽類
示例
#box :before {content :"本段文字在盒子前面" ;
}
#box :after {
content :"本段文字在盒子后面" ;
}
描述
這兩個偽元素分別在指定元素的前面和后面添加生成的內(nèi)容,結(jié)合content屬性一起使用。
支持情況
IE6No IE7
No IE8
Yes
屬性支持
由position產(chǎn)生的實際大小
示例
#box{position :absolute ;
top :0 ;
right :100px ;
left :0 ;
bottom :200px ;
background :blue ;
}
描述
定義top ,right ,bottom , 和left 值到絕對定位的元素上將給這個元素實際的大小(寬度和高度),雖然并沒有設(shè)定使寬度和高度值。
支持情況
IE6No IE7
Yes IE8
Yes
Min-Height 與 Min-Width
示例
#box{min-height :500px ;
min-width :300px ;
}
描述
這兩個屬性分別指定元素的寬和高的最小值,允許一個盒子可以比指定的最小值更大,但是不能更小。它們兩個可以一起使用,也可以分開來用。
支持情況
IE6No IE7
Yes IE8
Yes
Max-Height 和Max-Width
示例
#box{max-height :500px ;
max-width :300px ;
}
描述
這兩個屬性分別指定元素的高和寬的最大值,允許一個盒子比這個指定的最大值小,但是不能更大。它們也可以同時使用或者單獨使用。
支持情況
IE6No IE7
Yes IE8
Yes
透明邊框顏色
示例
#box{border :solid1pxtransparent ;
}
描述
一個透明的邊框色允許一個邊框和邊框色可見(或者不透明)時占用一樣的空間。
支持情況
IE6No IE7
Yes IE8
Yes
固定位置元素
示例
#box{position :fixed ;
}
描述
position 屬性的這個值允許一個元素絕對的相對于窗口定位。
支持情況
IE6No IE7
Yes IE8
Yes
固定位置的背景圖
示例
#box{background-image :url ( images/bg.jpg ) ;
background-position :00 ;
background-attachment :fixed ;
}
描述
background-attachment 屬性的值為fixed允許一個背景圖片絕對地相對于窗口定位。
支持情況
IE6No IE7
Yes IE8
Yes
Bugs
就像position:fixed一樣,IE6同樣不支持background-positon的fixed值 。然而,在IE6中只有在這個值用于根元素的時候才有效。
屬性值“inherit”
示例
#box{display :inherit ;
}
描述
將值inherit 應用到一個屬性那個允許一個元素從它的包含元素繼承計算的值。
支持情況
IE6No IE7
No IE8
Yes
Bugs
IE6 和IE7 不支持inherit 值除了direction 和visibility 屬性。
表格單元的邊框空白
示例
table td {border-spacing :3px ;
}
描述
該屬性設(shè)置相鄰的表格單元的邊框之間的空白。
支持情況
IE6No IE7
No IE8
Yes
在表格中渲染空單元格
示例
table {empty-cells :show ;
}
描述
該屬性,只應用于元素的display屬性被設(shè)置為 table-cell的元素,允許空單元格渲染他們的邊框和背景。否則,它們將不可見。
支持情況
IE6No IE7
No IE8
Yes
表格標題的水平位置
示例
table {caption-side :bottom ;
}
描述
這個屬性允許將一個表格的標題放到表格的底部——默認是頭部。
支持情況
IE6No IE7
No IE8
Yes
修剪區(qū)域
示例
#box{clip : rect( 20px ,300px ,200px ,100px )
}
描述
該屬性指定一個盒子的一個區(qū)域可見,剩下的部分修剪掉,或者不可見。
支持情況
IE6No IE7
No IE8
Yes
Bugs
有趣的是,該如果不使用隔開各個值的逗號,IE6和IE7也可以用這個屬性。(比如,使用空格隔開剪切的值。)
打印頁面中的orphanes和widows
示例
p {orphans :4 ;
}
p {
widows :4 ;
}
描述
orphans 屬性設(shè)定在打印頁面底部顯示的最少行數(shù)。而widows 屬性用來設(shè)定打印頁面頭部至少顯示的段落的行數(shù)。
支持情況
IE6No IE7
No IE8
Yes
盒子內(nèi)的頁面分割
示例
#box{page-break-inside :avoid ;
}
描述
該屬性設(shè)定分頁是否發(fā)生在一個指定元素內(nèi)。
支持情況
IE6No IE7
No IE8
Yes
Outline 屬性
示例
#box{outline :solid1pxred ;
}
描述
outline 是outline-style ,outline-width , 和outline-color 的縮寫。該屬性要優(yōu)于border屬性,因為它不會影響文檔流,因而u更有助于調(diào)試布局問題。
支持情況
IE6No IE7
No IE8
Yes
display屬性的替代值
示例
#box{display :inline-block ;
}
描述
display 屬性通常設(shè)置為block ,inline , 或none 。替代值包括:
- inline-block
- inline-table
- list-item
- run-in
- table
- table-caption
- table-cell
- table-column
- table-column-group
- table-footer-group
- table-header-group
- table-row
- table-row-group
支持情況
IE6No IE7
No IE8
Yes
處理可折疊空白
示例
p {white-space :pre-line;
}
div {
white-space :pre-wrap;
}
描述
white-space 屬性的pre-line值設(shè)定將多個空白元素折疊為一個空白,同時允許明確的設(shè)置斷行。white-space 屬性的pre-wrap 值不會將多個空白折疊為一個,不過也允許明確的設(shè)置斷行。
支持情況
IE6No IE7
No IE8
Yes
其它各種技術(shù)
@import的媒體類型
示例
@import url("styles.css") screen;描述
就像上面的例子那樣,引入的樣式表文件的媒體類型聲明在文件地址的后面。在該例子中,媒體類型是”screen”。
支持情況
IE6No IE7
No IE8
Yes
Bugs
盡管IE6 和IE7 支持@import ,它們在媒體類型被指定的時候會無效,甚至會引起正@import規(guī)則無效。
計數(shù)遞增
示例
h2 {counter-increment :headers;
}
h2:before {
content :counter( headers)". " ;
}
描述
該CSS 技術(shù)允許你自動增加出現(xiàn)在指定元素前面的編號,結(jié)合before偽元素一起使用。
支持情況
IE6No IE7
No IE8
Yes
生成內(nèi)容的引用字符
示例
q {quotes :"'""'" ;
}
q:before {
content :open-quote ;
}
q:after {
content :close-quote ;
}
描述
指定用于生成內(nèi)容的引用呼號,用于q標簽。
支持情況
IE6No IE7
No IE8
Yes
重要bug和不兼容性問題
下面是在上文中沒有提到的IE6和IE7的眾多bug。當然這個列表不包括在這三個瀏覽器中都不支持的條目。
IE6 Bugs
- 不支持用樣式設(shè)置<abbr> 元素
- 不支持以連字符和下劃線開頭的class和ID名
- <select> 元素總是出現(xiàn)在堆疊最上面,而無視z-index值
- 如果錨點的偽類沒有使用正確的順序 (:link ,:visited ,:hover ),:hover 偽類將無效
- 一個屬性的!important 聲明會被同一規(guī)則中同一屬性的沒有使用!important的第二個聲明覆蓋。
- height 表現(xiàn)類似于min-height
- width 表現(xiàn)類似于min-width
- 左右margin雙倍
- 圓點邊框(dotted)看起來像虛線邊框(dashed)
- text-decoration 的line-through 值在文字上看起來比別的瀏覽器要高一些
- 有序列表如果有一個固定結(jié)構(gòu)(haslayout為true,不能設(shè)置li的高度/寬度/zoom等激活haslayout的值),序號就不會增加,而是保持為1
- 列表元素不支持list-style-type 的所有可用的值
- 如果列表條目浮動,指定的list-style-image 將不會顯示
- 不完全支持@font-face
- 某些選擇器會錯誤的匹配注釋和文檔聲明
- 如果一個ID 選擇器結(jié)合一個類選擇器不匹配,同樣的ID選擇器結(jié)合不同的類選擇器也將被當作不匹配。
IE7 Bugs
- 有序列表如果有一個固定結(jié)構(gòu)(haslayout為true,不能設(shè)置li的高度/寬度/zoom等激活haslayout的值),序號就不會增加,而是保持為1
- 列表元素不支持list-style-type 的所有可用的值
- 如果列表條目浮動,指定的list-style-image 將不會顯示
- 不完全支持@font-face
- 某些選擇器會錯誤的匹配注釋和文檔聲明
一些在這里沒有提到的IE bug只會在特定環(huán)境發(fā)生,而且沒有指定到特定的CSS屬性或值。查看下面的參考以了解更多問題:
更多資源
- Details of Changes in Internet Explorer 8
- CSS Compatibility for Internet Explorer (MSDN)
- CSS Improvements in Internet Explorer 8 (MSDN)
- Internet Explorer Exposed – CSS Bugs @ Position Is Everything
- SitePoint CSS Reference
- CSS Contents and Browser Compatibility
關(guān)于作者
Louis Lazaris 是一個居住在加拿大多倫多的自由職業(yè)者,網(wǎng)頁開發(fā)者,在網(wǎng)站開發(fā)領(lǐng)域有9年的經(jīng)驗,在其博客Impressive Webs 發(fā)布網(wǎng)頁設(shè)計文章和教程。你可以follow Louis on Twitter ? 或者在這里 聯(lián)系到他 。
總結(jié)
以上是生活随笔為你收集整理的CSS对IE6、IE7、IE8支持详细的易用的参考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样用Jquery实现拖拽层,并实现网站
- 下一篇: 3999元起!红魔8 Pro系列再次开售