この記事では、JavaScriptを使用してCSSカスタムプロパティ値を取得し、自動的に生成されたパレットの例を作成する方法について説明します。 getComputedStyle
とgetPropertyValue
を使用して単一のカスタムプロパティにアクセスできることを知っていますが、複数のプロパティがある場合は、多くの重複コードを記述する必要があります。この記事では、このプロセスを自動化する方法を示します。
HTML要素で複数のカスタムプロパティを宣言したとします。
html { -color-accent:#00eb9b; - color-accent-condary:#9db4ff; -COLOR-ACCENT-TERTIARY:#F2C0EA; -Color-Text:#292929; -Color-Divider:#D7D7D7; }
すべてのカスタムプロパティを自動的に取得し、次の手順でパレットを生成できます。
すべてのスタイルシートを取得する:
document.styleSheets
を使用して、ページ上のすべてのスタイルシート(内側と外側)を取得します。-
フィルターサードパーティのスタイルシート:セキュリティ上の理由から、現在のドメイン上のスタイルシートのみが処理されます。
isSameDomain
関数を使用して、サードパーティのスタイルシートを除外します。constisdamedomain =(styleSheet)=> { if(!styleSheet.href)trueを返します。 return styleSheet.href.indexof(window.location.origin)=== 0; };
すべてのスタイルのルールを取得する:すべてのスタイルルールを配列に融合するために、
reduce
とconcat
方法を使用します。-
非ベーススタイルのルールをフィルター:タイプ
CSSStyleRule
のルールのみが保持され、他のタイプのルール(CSSMediaRule
など)が保持されます。isStyleRule
関数を使用してフィルタリングします。const isstylerule =(rule)=> rule.type === 1;
すべての属性の名前と値を取得します:各スタイルルールの
style
属性(CSSStyleDeclaration
オブジェクト)を繰り返し、map
メソッドを使用してすべての属性の名前と値を取得します。フィルター以外の属性:
--
始まるカスタム属性のみが保存されます。filter
メソッドを使用してフィルタリングします。HTMLを生成する:
reduce
メソッドを使用して、取得したカスタム属性と値に基づいてHTMLコードを生成し、それを使用してカラーパレットを表示します。使用します<div>要素はカラーサンプルとして使用され、インラインスタイルを使用して色を設定します。外部CSSは<code>var(--color)
を使用して背景色を設定します。最終コードは、次の構造に似ています(特定の実装の詳細については、元のテキストを参照):
const getCSScustomPropIndex =()=> [... document.stylesheets] .Filter(IssadeDomain) .reduce((final、sheet)=> finalArr.concat( [... sheet.cssrules] .filter(isstylerule) .reduce((propvalarr、rule)=> { const props = [... rule.style] .map((propname)=> [propname.trim()、rule.style.getPropertyValue(propname).trim()])) .filter(([propname])=> propname.indexof( " - ")=== 0); return [... propvalarr、... props]; }、[]) )、[]); const csscustompropindex = getcsscustompropindex(); document.queryselector( "。色")。innerhtml = csscustompropindex.reduce( (str、[prop、val])=> `$ {str}<div class="color__swatch" style="--color: ${val};"></div> `、" ");
このメソッドは、多くのコードを手動で書き込むことなく、すべてのCSSカスタムプロパティを表示するカラーパレットを自動的に生成します。将来的には、CSSSと入力されたオブジェクトモデルレベル1ドラフトの
CSSStyleRule.styleMap
プロパティを使用して、コードを簡素化できます。
以上がJavaScriptのページですべてのカスタムプロパティを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

記事では、レスポンシブデザインにおけるスペースの効率的なアラインメントと分布のためのレイアウト方法であるCSS FlexBoxについて説明します。 FlexBoxの使用量を説明し、CSSグリッドと比較し、ブラウザのサポートを詳細に説明します。

この記事では、ビューポートメタタグ、柔軟なグリッド、流体メディア、メディアクエリ、相対ユニットなど、CSSを使用してレスポンシブWebサイトを作成するための手法について説明します。また、CSSグリッドとフレックスボックスを使用してカバーし、CSSフレームワークを推奨しています

この記事では、要素の寸法の計算方法を制御するCSSボックスサイズのプロパティについて説明します。コンテンツボックス、ボーダーボックス、パディングボックスなどの値と、レイアウト設計とフォームアライメントへの影響について説明します。

記事では、CSS、キープロパティ、およびJavaScriptとの組み合わせを使用してアニメーションの作成について説明します。主な問題は、ブラウザの互換性です。

記事では、3D変換、主要なプロパティ、ブラウザの互換性、およびWebプロジェクトのパフォーマンスに関する考慮事項にCSSを使用して説明します。

この記事では、CSSグラデーション(線形、放射状、繰り返し)を使用して、ウェブサイトのビジュアルを強化し、深さ、フォーカス、および現代の美学を追加します。

記事では、CSSの擬似要素、HTMLスタイリングの強化における使用、および擬似クラスとの違いについて説明します。実用的な例を提供します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









