瀏覽器的兼容性(CSS瀏覽器兼容性、CSS hack)
阿新 • • 發佈:2018-07-15
zoom content 兼容性 line border orm only box 瀏覽器兼容
一、關於CSS hack(盡量不用或者少用,減少頁面復雜度)
1、條件註釋法:(我的測試是IE9及其以下才有效)
這種方式是IE瀏覽器專有的Hack方式,微軟官方推薦使用的hack方式。舉例如下
只在IE下生效
<!--[if IE]>這段內容只在IE瀏覽器中顯示<![endif]-->
只在IE6下生效
<!--[if IE 6]> 這段文字只在IE6瀏覽器中顯示 <![endif]-->
只在IE6及其以上瀏覽器中生效
<!--[if gte IE 6]> 這段文字只在IE6及其以上的IE瀏覽器中顯示 <![endif]-->
只有在非IE8得IE瀏覽器下中生效
<!--[if ! IE 8]> 這段文字只在非IE8的IE瀏覽器中顯示 <![endif]-->
下面這條,在谷歌瀏覽器中測試無效(沒有裝其他更多瀏覽器,電腦太垃圾了),可能有錯誤:
只有在非IE瀏覽器中顯示:
<!--[if !IE]> 這段文字在非IE瀏覽器中顯示 <![endif]-->
2、類內屬性前綴法(S:標準模式;Q:怪異模式)
在標準模式中:
“-”和“_” IE6專有的hack
“*”和“+” IE6/IE7都生效
“\9” IE6/IE7/IE8/IE9/IE10都生效
“\0” IE8/IE9/IE10都生效,是IE8/IE9/IE10的hack
“\9\0” 只對IE9/IE10生效,是IE9/IE10的hack
!important 只有IE6瀏覽器不生效
.hack{
background-color: red; /* All browser */
background-color: blue !important; /* All browser but IE6 and IE5 */
*background-color: black; /* IE5, IE6, IE7 */
+background-color: yellow; /* IE5, IE6, IE7 */
*+background-color: pink; /* IE5, IE6, IE7 */
background-color: gray\9; /* IE5, IE6, IE7, IE8, IE9, IE10 */
background-color: purple\0; /* IE8, IE9, IE10 */
background-color: orange\9\0; /* IE9, IE10 */
-background-color: green; /* only work in IE5, IE6 */
_background-color: green; /* only work in IE6,IE5 */
}
3、選擇器前綴法
常見的:
*html *前綴只對IE6生效 *+html *+前綴只對IE7生效 @media screen\9{...}只對IE6/7生效 @media \0screen {body { background: red; }}只對IE8有效 @media \0screen\,screen\9{body { background: blue; }}只對IE6/7/8有效 @media screen\0 {body { background: green; }} 只對IE8/9/10有效 @media screen and (min-width:0\0) {body { background: gray; }} 只對IE9/10有效 @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只對IE10有效
二、一些CSS的兼容性
常見的:
min-height/min-width >=IE7
inline-block >=IE8
:before/:after >=IE8
::before/::after >=IE9
div:hover >=IE7
background-size >=IE9
border-radius >=IE9
box-shadow、flex >=IE9
animation/transform >=IE9
等等CSS3屬性必須是>=IE9的IE瀏覽器才支持
清浮動:(::afterIE8無法識別)
.clearfix:after{
content: ".";
display: block;
height: 0;
visibility: hidden;
clear: both;
}
.clearfix{
zoom: 1; /* 兼容 <=IE7 */
}
瀏覽器的兼容性(CSS瀏覽器兼容性、CSS hack)