IE・Safariでのレイアウト崩れや表示違い対策 CSSハックのまとめ

カレンダーDate: | カテゴリーCategory:WordPressテーマのカスタマイズ方法【HTML・CSSの基礎も】
※景品表示法に基づく表記:本記事には商品の広告が含まれています

CSS

※2013年6月9日記事作成。2014年6月3日加筆修正。

サイトの制作や更新を行っていると、どうしてもブラウザ間で表示が異なる事象が出てしまいます。

言わずもがなIEの古いバージョンのレイアウト崩れは多いです。
そしてSafariも、表示フォントが変わってしまったりする場合があります。

で、通常の対策を行っても、ブラウザ間の表示違いを修正できないときに役立つのがCSSハックというテクニックです。

ちなみにCSSハックとは、各ブラウザの実装状況やバグを逆手に取り、ブラウザによって異なる宣言を読み込ませるための記述。

別の言い方をすると「IE6だけに読ませるスタイル」とか「safari2〜3.1のみに読み込ませるスタイル」を指定する記述です。

IE用のCSSハックまとめ

紹介する情報は、2013年8月時点のものとなります。

以下、「.csshack」は命名したセレクタに、「font-size: 10px;」は適用したいスタイルに置き換えて、使用して下さい。

IE6以下
.csshack { _font-size: 10px; }
IE6とIE7
.csshack { /font-size: 10px; }
IE7
*+html .csshack { font-size: 10px; }
IE8
.csshack { font-size: 10px9; }
IE9
.csshack:not(:target){ font-size: 10px¥9; }

ちなみにIE10用のハックは、
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.csshack {
font-size: 10px
}
}
ですが、これはもしかするとIE11でバグが出てしまうかもしれません。
※11がリリースされるまで分かりません。

Safari用のCSSハックまとめ

「.csshack」は命名したセレクタに、「font-size: 10px;」は適用したいスタイルに置き換えて下さい。

Safari2〜3
html[xmlns*=””] body:last-child .csshack { font-size: 10px; }
Safari2〜3.1
html[xmlns*=””]:root .csshack { font-size: 10px; }
Safari3以上およびChrome
@media screen and (-webkit-min-device-pixel-ratio:0) { .csshack { font-size: 10px; }}

以上、IEとSafariのCSSハック一覧を紹介しました。
もちろん、ハックは使わないに越したことはありませんが(将来にわたって有効とは限らないため)、どうしても上手く表示できない時の回避技として知っておいて損は無いと思います。

Tags


Trackbacks & Comments

Trackback URL for this post:

Trackback(s)

Comment(s)

  1. 粉バナナ より:

    Safari3以上
    @media screen and (-webkit-min-device-pixel-ratio:0) { .csshack { font-size: 10px; }}

    これだと、safari以外にも適応されちゃうみたいなので、
    ハッキングできなかったです;;

    でもありがとうございました。

    • >粉バナナさま

      ご指摘ありがとうございます。
      @media screen and (-webkit-min-device-pixel-ratio:0) ですと、chromeにも効いてしまいますね。
      せっかく、お試しいただいたのに申し訳ありませんでした。


Leave a Reply

flight