各ブラウザのみにスタイルを適用する方法をご紹介いたします。
IEのみ表示が崩れるとか、Firefoxのみ違うサイズにしたい、といった場合に使えるCSSハックです。
CSSでスタイルを各ブラウザのみに適用させる方法
IEだけに適用されるスタイル
IEだけに適用されるスタイルを指定したい場合は、以下のように記述します。
_:lang(x)::-ms-backdrop, p {
font-size: 14px;
}
上記のように記述すると、IEのみ(バージョン10以降)、p要素のフォントサイズが14pxになります。
クラス名で指定したい時は以下のように”p”の部分を変更します。
_:lang(x)::-ms-backdrop, .classname {
font-size: 14px;
}
Firefoxだけに適用されるスタイル
Firefoxだけに適用されるスタイルを指定したい場合は、以下のように記述します。
@-moz-document url-prefix() {
p {
font-size: 14px;
}
}
上記のように記述すると、Firefoxのみ、p要素のフォントサイズが14pxになります。
もしくは、以下のように記述します。
_:lang(x)::-moz-placeholder, p {
font-size: 14px;
}
Chromeだけに適用されるスタイル
Chromeだけに適用されるスタイルを指定したい場合は、以下のように記述します。
_:lang(x)::-internal-media-controls-overlay-cast-button, p {
font-size: 14px;
}
上記のように記述すると、Chromeのみ、p要素のフォントサイズが14pxになります。
Chrome/Safari/Operaに適用されるスタイル
Chrome/Safari/Operaに適用されるスタイルを指定したい場合は、以下のように記述します。
@media screen and (-webkit-min-device-pixel-ratio:0) {
p {
font-size: 14px;
}
}
上記のように記述すると、Chrome/Safari/Operaのp要素のフォントサイズが14pxになります。
Chrome/Operaに適用されるスタイル
ChromeとOperaのみに適用されるスタイルを指定する場合は、以下のようにします。
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
p {
font-size: 14px;
}
}
上記のように記述すると、ChromeとOperaのみ、p要素のフォントサイズが14pxになります。
Safariだけに適用されるスタイル
MacのSafariだけに適用されるスタイルを指定したい場合は、以下のように記述します。
_::-webkit-full-page-media, _:future, :root p {
font-size: 14px;
}
上記のように記述すると、Safariのみ、p要素のフォントサイズが14pxになります。
あとがき
できれば、こういったハックは使いたくないですが、どうしてもスタイルの微調整が必要になった場合は、ぜひご活用ください。
ちなみに、IEのバージョン毎に値の指定を変更する方法を過去に紹介しております。詳細については、「IEのバージョン毎に値を変化させるためのCSSハック」をご参照いただければと思います。
大変参考になりました。ありがとうございます。