ウェブ屋の備忘録

日々の業務で工夫していることや便利なツール、新たに得た知識などを共有しています。

コレだけ知ってたら結構役に立つ!困ったときのCSSハックとか。

f:id:webbibouroku:20160112163411j:plain

最近は少なくなったけど、Web屋をやってるとやっぱりIEに泣かされます↓
最新のブラウザでキレイにコーディングしてもIE6とか7で表示ズレ…
IEにあわせてコーディングしてみたら他のブラウザで表示ズレ…
んーラチがアカン…。

そんなときはハックでしょ。ということで今回は少ない&かなりメジャー??ながらも強力な(自分的に)CSSハックをご紹介します。私の場合ズレるのはIE6、IE7なのでそちらをメインに紹介します、でも使わないに越したことはないのでほどほどにどうぞ。

ブラウザごとのCSSハック

■IE6用 [html] .sample{  _color : red ; } [/html] 先頭にアンダーバーをつける。
この場合IE6だけredになります。

 

IE7用 [html] *:first-child+html .sample{  color : red ; } [/html] ちょっと長いけど、先頭に*:first-child+htmlをつける。
この場合IE7だけredになります。

 

■IE6、IE7用 [html] .sample{  *color : red ; } [/html] 先頭にアスタリスクをつける。
この場合IE6とIE7だけredになります。

 

Firefox用 [html] @-moz-document url-prefix( ){  .sample{   color : red ;  } } [/html] @-moz-document url-prefix( ){ここにCSSを記述}で囲む。
これでfirefoxだけredになります。

 

これだけでも、かなり解決できちゃうのですが…。
もうほんとどうしようもないって時には以下で。

 

IE6、IE7専用のCSSを読み込ませる。

■IE6用 [html] <!--[if IE 6 ]>  <link rel="stylesheet" type="text/css" href="ieonly_ie6.css" /> <![endif]--> [/html] ieonly_ie6.cssにIE6だけに読ませるCSSを記述。

 

IE7用 [html] <!--[if IE 7 ]> <link rel="stylesheet" type="text/css" href="ieonly_ie7.css" /> <![endif]--> [/html]

ieonly_ie7.cssIE7だけに読ませるCSSを記述。

 

CSSは上から読み込まれるので読み込ませるCSSの一番下に記述してね。

 

その他、困った時に助かったヤツ。

■IE6で、ボーダーが表示されない [html]position:relative;[/html] ボーダーが表示されない要素に記述。

 

■IE6で、フロートさせた要素のマージンが倍になる [html]display: inline;[/html] フロートさせた要素に記述。

 

■IE6で、小さい高さにしたとき、なんでか大きくなってしまう [html]overflow: hidden;[/html] 小さい高さにした要素に記述。

 

IE9で、jQueryが動かないって言われたとき試してみる価値あり。 [html]<meta http-equiv="X-UA-Compatible" content="IE=7">[/html] をhead内に記述すると動くかも、強制的に互換モードにしてくれる。

 

CSSとかJSとかの更新時、キャッシュを読ませない方法 [html]<link rel="stylesheet" type="text/css" href="css/sample.css" />[/html] を上書きするとキャッシュを読んでしまうので [html]<link rel="stylesheet" type="text/css" href="css/sample.css?20130306">[/html] 末尾に「?日付」を追加するとキャッシュされない。んーこれは便利!

 

他にもたくさんあるけど、よく引っかかるのはこんな感じ。
皆さんのお役に立てば幸いです。

ああしたい、こう変えたいが手にとるようにわかる CSS基礎

ああしたい、こう変えたいが手にとるようにわかる CSS基礎