css常用hackテクニック

3257 ワード

1.IEに対する注釈文:lt,gt,lte,gteはそれぞれ小さい、大きい、小さい、等しい、以上である.注記すると、IEと対応するブラウザバージョンの間にスペースがあります.
<!--[if lt IE 9]>
<link href="http://www.cnblogs.com/src/main/webapp/assets/styles/ieHack.css" rel="stylesheet" type="text/css" />
<![endif]-->

2._property:これはIE 6だけで認識でき、とても役に立ちます.
body { _border:1px solid red; /*only for IE6*/}

3.*property:IE 6,7はすべて識別します:
.box { display:inline-block; *display:inline;*zoom:1; /*for IE6,7*/}

4.セレクタhack:
* html .box { color:red; /*only for IE6*/ }
*+html .box { color:red;/*only for IE7*/ }

以上のhackはいずれもIE向けであり,IE 8,9のhackは不安定であるため,ここでは紹介しない.
より具体的なcss hackの詳細は、cssブラウザhackまたは本人が確立したマッピング(http://jsfiddle.net/xmlovecss/D8eJn/)
を参照してください.
ここで質問ですが、すべてのブラウザに対してbox幅を設定する必要があり、IE 6に幅を設定しない場合はhackを書く方法を考えてください.高度なセレクタを使用します.
答えは以下の通りです.
html>body .box { width:200px; }

このように書くと、お父さんになります.
.box { width:200px;_width:auto; }

また,条件コメント文を用いて,IEに対するグローバルハックをcssファイルに整理することが推奨される.(ただし、ここで問題があります.ある日、IE 6をサポートする必要がない場合は、IE条件注釈を1ページずつ削除しなければなりません)
プライベートページのスタイルの場合、IEバグを修正するにはIEコメント文を使用する必要はありません.
hackはcssを不潔にし、後期のメンテナンス清掃に迷惑をかけます.hackを使わないでできるだけhackを使わないでください.
回避hackテクニック:
  • は、他のcssソリューション
  • を使用することを試みる.
  • html構造
  • を交換する.
    より包括的なbrowser hack list:http://browserhacks.com/