ブラウザやOSごとにCSSを適用させるための記述方法についてまとめました。
See the Pen
css-hack by KUBO (@KUBOGEN)
on CodePen.
上記の色は以下のようにブラウザごとで見え方が違います。
- Google Chrome / Opera → 赤
- Safari → 青
- Firefox → 緑
- Edge → オレンジ
- IE11 → ピンク
ブラウザごとにCSSを適用させる方法
Google Chrome / Safari / Opera
@media screen and (-webkit-min-device-pixel-ratio: 0) {
body {
background: red;
}
}
body {
background: red;
}
}
Google Chrome / Opera
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
body {
background: red;
}
}
body {
background: red;
}
}
Safari
@media screen and (-webkit-min-device-pixel-ratio: 0) {
_::-webkit-full-page-media, _:future, :root body {
background: blue;
}
}
_::-webkit-full-page-media, _:future, :root body {
background: blue;
}
}
Firefox
@-moz-document url-prefix() {
body {
background: green;
}
}
body {
background: green;
}
}
Edge
Edgeの場合は、2つの書き方があります。
/* Edge 1 */
@supports (-ms-ime-align: auto) {
body {
background: orange;
}
}
@supports (-ms-ime-align: auto) {
body {
background: orange;
}
}
/* Edge 2 */
_:-ms-lang(x)::backdrop, .css-hack {
body {
background: orange;
}
}
_:-ms-lang(x)::backdrop, .css-hack {
body {
background: orange;
}
}
Internet Explorer (IE11)
_:-ms-lang(x)::-ms-backdrop, body {
background: pink;
}
}
background: pink;
}
}
以下のような書き方もありますが、現在は上記を使う方がいいかと思います。
/* ハイコントラストモードが「オフ」の場合 */
@media all and (-ms-high-contrast: none) {
body {
background: pink;
}
}
@media all and (-ms-high-contrast: none) {
body {
background: pink;
}
}
/* ハイコントラストモードが「オン」でも効くようにする場合 */
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
body {
background: pink;
}
}
@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
body {
background: pink;
}
}
OSごとにCSSを適用させる方法
OSごとにCSSを適用させたい場合、「css_browser_selector」を使うと便利です。
下記スクリプトを読み込ませて、CSSを書くだけで、OSごとにCSSを適用させることができます。
<script src=”css_browser_selector.js” type=”text/javascript”></script>
/* Windows (全バージョン)のみ */
.win {
.win {
}
/* Mac OSのみ */
.mac {
}
/* linux(x11とlinux)のみ */
.linux {
}
/* iPhoneのみ */
.iphone {
}
/* iPadのみ */
.ipad {
}
/* Androidのみ */
.android {
}
ちなみに、「css_browser_selector」ではOSだけでなく、ブラウザごとの指定もできます。
また、OS別にCSSを適用させる方法として、Javascriptでユーザーエージェントを判別する方法などもあります。
Leave a Comment