CSSの変数:使用とブラウザの互換性
4583 ワード
以前にCSS変数を使用していたに違いないでしょう.以前にCSS変数を使用している場合は、Internet Explorerを使用してユーザーをサポートする必要がある場合は特にブラウザの互換性の問題を経験することができました.私は知っている、私は関連することができます、それは痛みをすることができます😢 しかし、この記事ではCSS変数を導入し、CSS変数を使用する際のブラウザ互換性の問題についても解決します.CSSの変数との知り合いのレベルは何でも、私はあなたが読んで楽しいと私は私が学んだことを共有しながら学習すると信じています.
私が進む前に、CSS変数とCSSカスタムプロパティ/カスタムプロパティの用語が同義であることに注意してください.
説明変数
CSSの変数の概念は、多くのプログラミング言語で変数の概念と似ています.CSS変数は、スタイルシートの他の場所で再利用するためにCSS値を格納する方法です.これにより、プロパティに値を適用することが容易になり、また、スタイルシートにある場所を探す必要がなく、値を変更することができます.
変数の宣言
カスタムプロパティの命名概念はダブルハイフンでプロパティ名を開始することです
用途
変数を宣言したので、次のことは既に宣言された変数を使うことです.変数を使用するには、カスタムプロパティ名を
ブラウザの互換性問題の修正
On caniuse.com , サポートしていないブラウザ
ちょうどこのスクリプトタグをあなたのHTMLに加えてください
ボーナス
別の解決策が作成され、これはポリフィルではなくponyfill .
インストールするには、このスクリプトタグをHTMLに追加します
それがPearfillであるので、機能は起こるために処理のために呼ばれなければなりません.
この記事を読む時間を割いてくれてありがとう.それが役に立つことを願っていますか?あなたの次のプロジェクトに取り組んで、あなたはSASS以下のような任意のプリプロセッサを使用していない場合は、常にCSSのカスタムプロパティ/変数と強調表示されたPolyfillとPonFillを使用して、ブラウザの互換性の問題の世話をすることができます.では後で✌️.
更なる読書 MDN web docs W3Schools CSS variable polyfill by nuxodin CSS var ponyfill by jhildenbiddle
リファレンス Stack overflow
私が進む前に、CSS変数とCSSカスタムプロパティ/カスタムプロパティの用語が同義であることに注意してください.
説明変数
CSSの変数の概念は、多くのプログラミング言語で変数の概念と似ています.CSS変数は、スタイルシートの他の場所で再利用するためにCSS値を格納する方法です.これにより、プロパティに値を適用することが容易になり、また、スタイルシートにある場所を探す必要がなく、値を変更することができます.
変数の宣言
カスタムプロパティの命名概念はダブルハイフンでプロパティ名を開始することです
--
とルールセット内のプロパティ値.:root {
--primary-color: #c4c4c4;
}
一般的な練習は:root
ドキュメントを表すツリーのルート要素である擬似クラスです.ただし、カスタムプロパティのスコープを選択できます..hero {
--primary-color: #c4c4c4;
}
上の例では--primary-color
はヒーロークラスにスコープされます.カスタムプロパティのスコープを指定すると、CSSセレクタに対してその有効性が制限されます.用途
変数を宣言したので、次のことは既に宣言された変数を使うことです.変数を使用するには、カスタムプロパティ名を
var()
プロパティ値として使用する関数です.p {
color: var(--primary-color);
}
div {
background-color: var(--primary-color);
border: 1px dashed var(--primary-color);
}
フォールバックは、カスタムプロパティを見つけることができないあなたのブラウザの結果として何かがうまくいかない場合に作成することができます.div {
background-color: var(--primary-color, #c4c4c4);
}
上の例では、カラーコード#c4c4c4
コンマが後に使用されるフォールバック値の後--primary-color
が利用できない.ブラウザの互換性問題の修正
On caniuse.com , サポートしていないブラウザ
var()
Internet Explorerは、このハッキングのためのインターネットエクスプローラです.ブラウザの互換性の問題は、PolyFillによって作成されたと解決することができます.ちょうどこのスクリプトタグをあなたのHTMLに加えてください
<script>window.MSInputMethodContext && document.documentMode && document.write('<script src="https://cdn.jsdelivr.net/gh/nuxodin/[email protected]/ie11CustomProperties.min.js"><\/script>');</script>
...そして、それは完了です🎉. 互換性の問題が修正されます.このサポートはIE 11用です.ボーナス
別の解決策が作成され、これはポリフィルではなくponyfill .
インストールするには、このスクリプトタグをHTMLに追加します
<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2"></script>
またはNPMnpm install css-vars-ponyfill
それからインポートimport cssVars from 'css-vars-ponyfill';
使用法それがPearfillであるので、機能は起こるために処理のために呼ばれなければなりません.
/* In your js file */
cssVars({
rootElement : document
});
これは魔法です✨. これはIEこの記事を読む時間を割いてくれてありがとう.それが役に立つことを願っていますか?あなたの次のプロジェクトに取り組んで、あなたはSASS以下のような任意のプリプロセッサを使用していない場合は、常にCSSのカスタムプロパティ/変数と強調表示されたPolyfillとPonFillを使用して、ブラウザの互換性の問題の世話をすることができます.では後で✌️.
更なる読書
リファレンス
Reference
この問題について(CSSの変数:使用とブラウザの互換性), 我々は、より多くの情報をここで見つけました https://dev.to/vkguru/css-variables-usage-and-browser-compatibility-hack-1pihテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol