序文リリースされたばかりの Chrome 93 バージョンには、JavaScript モジュールをインポートするのと同じように CSS スタイルを読み込むことができる、CSS モジュール スクリプトという魅力的な新機能が追加されました。 その後、Constructable Stylesheet と同じ方法で CSS スタイルをドキュメントと Shadow DOM に適用できます。これは、CSS をロードする他の方法よりも便利で効率的です。 構築可能なスタイルシートとは何ですか?CSS モジュール スクリプトを理解する前に、まず構築可能なスタイルシートとは何かを理解しましょう。名前の通り、CssStyleSheet で直接構築できるように設計されており、ドキュメント DOM と Shadow DOM の両方で使用できます。 構築可能なスタイルシートの使用:
構築可能なスタイルシートを変更するための API は次のとおりです。
// CSSStyleSheetを構築します const スタイルシート = 新しい CSSStyleSheet(); // CSSを追加 stylesheet.replaceSync('本文 { 背景: #000 !重要; }') // または stylesheet.replace は代わりに Promise を返します // ドキュメントに新しいスタイルシートを採用するように指示します。 // これは Shadow Roots でも機能することに注意してください。 document.adoptedStyleSheets = [...document.adoptedStyleSheets、スタイルシート]; CSSモジュールスクリプトの使用CSS モジュール スクリプトを導入すると、次のようにドキュメントとシャドウ DOM に対して動作します。 './styles.css' からシートをインポートします。 assert { type: 'css' }; document.adoptedStyleSheets = [シート]; shadowRoot.adoptedStyleSheets = [シート]; CSS モジュール スクリプトのデフォルトのエクスポートは構築可能なスタイル シートであり、他の構築可能なスタイル シートと同様に、adoptedstylesheet を使用してドキュメントと Shadow DOM に作用します。 JavaScript を使用して CSS を組み込む他の方法とは異なり、<script> タグを作成する必要はなく、難読化された JavaScript に CSS を挿入する必要もありません。 CSS モジュールにも JavaScript モジュールと同じ利点があります。
インポートアサーションとは何ですか?import ステートメントの assert {type: 'css'} 部分は必須のインポートアサーションです。これがないと、CSS は通常の JavaScript モジュールと見なされ、インポートされたファイルに JavaScript 以外の MIME タイプがある場合はインポートに失敗します。 import sheet from './styles.css'; // モジュール スクリプトの読み込みに失敗しました: // JavaScript モジュールが必要です // スクリプトですがサーバーが応答しました // MIME タイプが "text/css" の場合。 スタイルシートの動的インポートJavaScript モジュールの動的インポートと同様に、動的インポートを使用して CSS モジュールをインポートすることもできます。 const cssModule = インポートを待機します('./style.css', { アサート: { タイプ: 'css' } }); document.adoptedStyleSheets = [cssModule.default]; ここで注意すべき落とし穴があります。 adoptedstylesheet に追加されるのは cssModule 自体ではなく、 cssModule.default です。 @importルールはまだサポートされていません現在、CSS @import のルールは、CSS モジュール スクリプトを含む構築可能なスタイルシートには適用されません。 CSS モジュールに @import ルールが含まれている場合、それらは無視されます。 /* atImported.css */ div { 背景色: 青; } /* スタイル.css */ @import url('./atImported.css'); /* CSS モジュールでは無視されます */ div { 境界線: 1em 緑 } <!-- index.html --> <スクリプトタイプ="モジュール"> './styles.css' からスタイルをインポートします。 assert { type: "css" }; document.adoptedStyleSheets = [スタイル]; </スクリプト> <div>この div には緑の境界線がありますが、背景色はありません。</div> 現在、FirefoxとSafariブラウザはサポートされていませんが、将来的には期待できます〜 要約するJS モジュールのインポートなど、CSS のインポート方法についての記事はこれで終わりです。JS モジュールのインポートや CSS のインポートなど、関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Linux でリモートから MySQL を自動的にバックアップする方法
>>: Dockerコンテナにvimコマンドがない問題を解決する方法
序文:フロントエンド: jq+h5 で 9 グリッドのダイナミック効果を実現バックエンド: thin...
まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...
目次レスト演算子とは何ですか? JavaScript 関数では REST 演算子はどのように機能しま...
Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...
目次1. 部分文字列() 2. サブストラクチャ() 3.インデックス() 4.最後のインデックス(...
みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。今回はMySQL 8.0で追...
1: Dockerプライベートウェアハウスのインストール1. イメージリポジトリからイメージをダウン...
1. Zabbixバックアップ [root@iZ2zeapnvuohe8p14289u6Z /]# ...
ホスト 'xxxx' はこの MySQL サーバーに接続できませんエラー: 1130...
目次効果テキストの作成を開始するまずフォントローダーを作成するフォントライブラリを読み込むテキストジ...
WeChatアプレットプロジェクトでは、開発モジュールに手書き署名機能が含まれ、WeChatアプレッ...
ロックの概念①. 現実世界では、鍵は外の世界から身を隠したいときに使う道具です。 ②. コンピュータ...
導入MySQL 5.7 は、SSL/TLS と全体的なセキュリティ開発におけるいくつかの重要な変更に...
クリック後にポップアップボックスを実現し、上下左右に中央揃えし、灰色の透明マスクを追加してウィンドウ...
####システム内の入出力の管理#### 1. システムの入力と出力のリダイレクトを理解する入力リダ...