史上最も完全なcss hackと呼ばれています
2097 ワード
<!DOCTYPE html>
<html>
<head>
<title>Css Hack</title>
<style>
#test
{
width:300px;
height:300px;
background-color:blue; /*firefox*/
background-color:red\9; /*all ie*/
background-color:yellow\0; /*ie8*/
+background-color:pink; /*ie7*/
_background-color:orange; /*ie6*/
}
:root #test { background-color:purple\9; } /*ie9*/
@media all and (min-width:0px){ #test {background-color:black\0;} } /*opera*/
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} } /*chrome and safari*/
</style>
</head>
<body>
<div id="test">test</div>
</body>
</html>
上のコードは直接copyで出てきて、htmlに保存して各ブラウザで試してみてください.次に分析します.
background-color:blue; 各ブラウザはすべて知っていて、ここはfirefoxに使います;
background-color:red\9;\9すべてのieブラウザが認識できます.
background-color:yellow\0;\0はie 8に残されたが、筆者がテストしたところ、最新版operaも認識していることが分かった...しかし、ゆっくりして、後ろにはoperaに認めたhackが書いてあるので、0私たちはie 8に残したと思っています.
+background-color:pink; + ie 7が決まった.
_background-color:orange; _不思議なie 6に特化しています.
:root #test { background-color:purple\9; } :rootはie 9に与えられたもので、ネット上では
:root #test { background-color:purple\0;},ええ...これ...、新版operaも認識しているので、筆者が繰り返し検証した最終ie 9特有のものは、rootセレクタ{属性9;}
@media all and (min-width:0px){ #test {background-color:black\0;} } これはいつもieと0を争う不思議なoperaで、0を追加しなければなりません.さもないとfirefox、chrome、safariも知っています.の
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }最後にこれはブラウザの新貴chromeとsafariです.
はい、これだけです.以上の順序は変えられないことに特に注意してください.css hackはブラウザ間のcss表示の違いの問題を解決することができますが、結局W 3 Cの規範に合わないので、私たちは普段cssを書くのは標準に従ったほうがいいです.そうすれば、私たちの今後のメンテナンスにも大きなメリットがあります.本当に使えません.
別の点を記録します.
Firefox、Opera、Google、IE8、IE7,div = width + padding + border + margin。
IE6 :DIV = width + margin