目次
キーポイント
valueと
カスタム属性
プラグインは、新しい
関数を実装します。いくつかの例:

PostCSSを使用して今後のCSS機能を有効にすることについてよく聞かれる質問(記事が長すぎて擬似オリジナルの目標と一致しないため、FAQパーツはここで省略されています。PAQパーツは必要に応じて再編成および書き直すことができますが、元の意図は変わらない。

ホームページ ウェブフロントエンド CSSチュートリアル PostCSSで今後のCSS機能を有効にします

PostCSSで今後のCSS機能を有効にします

Feb 21, 2025 am 09:30 AM

Enabling Upcoming CSS Features with PostCSS

前の記事「PostCSS Guide:改善されたセレクターとメディアクエリ」に継承された

この記事では、CSS機能を拡張するPostCSSプラグインをさらに検討します。前の記事では、セレクターとメディアクエリを拡張することにより、スタイルシートの構造を改善することに焦点を当てていますが、この記事では、今後の仕様に新しいプロパティと値を実装する方法に焦点を当てます。この記事で説明されているプラ​​グインは、ニーズに応じて効果的にまたは個別に使用できるさまざまな機能を実装しています。

私のお気に入りのプラグインから始めましょう。

キーポイント

  • POSTCSSプラグインを使用して、今後のCSS仕様に新しいプロパティと値を実装し、CSSの機能を効果的に拡張できます。これらのプラグインは、開発者のニーズに応じて、一緒にまたは個別に使用できます。
  • POSTCSSを使用すると、ブラウザが正式に実装される前に、開発者が将来のCSS機能を使用できます。 postcss-initialプラグインは、initial値とall: initialの組み合わせのサポートを追加し、プラグインはブロックレベルレベルの要素とコンポーネントレベルの要素のスタイルを自動的にリセットします。 postcss-autoreset
  • プラグインは、開発者が1つ以上の「カラーアジャスター」関数を使用して基礎となる色を変更できるようにする新しいpostcss-color-function関数を実装します。 color()プラグインは、HWBの色を定義する新しいpostcss-color-hwb関数を実装します。 hwb() postcss-color-grayPostCSSは、新しいCSS機能を早期に採用および評価する有望な機会を提供します。開発者は、まったく新しい視点からスタイルシートを作成し、生産性を向上させる可能性のある利用可能な機能をリストすることをお勧めします。 gray()
  • 次のレベルにリセットを選択します
CSS3は、2つの優れた機能を紹介します:

valueと

属性。

値はinitialおよびall値で使用されるため、プロパティを元の値にリセットできます。 initial属性は、これら3つの状態のいずれかにすべての属性をリセットするShorthand属性として使用されます。どちらもそれ自体が興味深いものですが、一緒に使用すると、特定の要素のすべてのスタイルをすばやくリセットし、ページの親要素のスタイルを継承することを防ぐことができます。これは、モジュラーCSSを書くためのもう1つのステップです! inherit unset残念ながら、IEはまだこれらの2つの機能をサポートしていません。ただし、ご想像のとおり、この問題を解決するプラグインがあります。 all

値と

の組み合わせのサポートが追加されました。それがどのように機能するかは次のとおりです postcss-initial initialにコンパイルされています:all: initial

.article {
  font-size: initial;
  color: initial;
  padding: initial;
  margin: initial;
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
デフォルトでは、この機能をサポートするネイティブブラウザで使用するために、元のプロパティと

を保持します。

.article {
  font-size: medium;
  font-size: initial;
  color: #000;
  color: initial;
  padding: 0;
  padding: initial;
  margin: 0;
  margin: initial;
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
順に、

属性はリセット属性の長いリストに変換されます。 initial

は次のように変換されます all

(宇宙のために、
.container {
  all: initial;
}
ログイン後にコピー
ログイン後にコピー
の後の拡張コード)

BEMまたはスーツを使用する場合、このプラグインはpostcss-autoresetでうまく機能します。これにより、ブロックレベルの要素とコンポーネントレベルの要素のスタイルが自動的にリセットされます。

カスタム属性

レイアウトを使用する場合、スタイルシートでいくつかの値を共有する必要があることがよくあります。たとえば、ブランドの色は、ボタンの背景、リンクのテキスト色、またはテキストブロックの境界として使用できます。現在、これを達成するには、色が使用される場所に複数回繰り返す必要があります。この繰り返しにより、アプリケーションの色を変更するときにパレットを一貫させることが面倒です。

cssのようなpreprocessors like less and sassは、変数でこの問題を解決しました。幸いなことに、W3CはCustom Propertiesと呼ばれる同様の概念に取り組んでいます。同じ問題は解決されますが、プリプロセッサの変数とは異なる動作をします。コンパイル時にSASS変数が解析され、SASS変数が解析されます。 CSSにコンパイルまたはSASSをCSSにコンパイルすると、コンパイラは現在のコンパイル範囲に対応する可変宣言を探し、各インスタンスを対応する値に置き換えます。これは、変数の解析値がコードの使用場所に完全に依存することを意味します。カスタムプロパティは、DOMの要素に対して定義され、子要素によってのみアクセスできます。これは、変数の値がDOMの要素の位置に依存し、実行時にのみ解析できることを意味します。

これまでのところ、眉をひそめたり、眉を上げたりする必要があります。変数の値が実行時にのみ既知である場合、PostCSSプラグインはどのように解析しますか?真実は、できないということです。ただし、機能のサブセットを使用する方法を提供します。すべてのカスタムプロパティを:root要素で定義すると、これらのプロパティはページ上のすべての要素で使用できます。これは、コンパイル時にそれらを解析できることを意味します。

これがどのように見えるかの簡単な例です:

.article {
  font-size: initial;
  color: initial;
  padding: initial;
  margin: initial;
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

は次のようにコンパイルされます

.article {
  font-size: medium;
  font-size: initial;
  color: #000;
  color: initial;
  padding: 0;
  padding: initial;
  margin: 0;
  margin: initial;
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

変数は未定義であるため、20pxのフォールバック値に置き換えられていることに注意してください。ここでは、すべてのカスタムプロパティを--font-size内に保持することが重要です。他の場所で定義されているプロパティは、プラグインが適切に処理できないため無視されます。ここから始めることができ、より多くのブラウザがそれをサポートし始めたら、その使用を拡張できます。 Chromeはバージョン49以来それらをサポートしています。 :root

論理的プロパティ

さまざまなライティングディレクションカルチャーにまたがる国際的なWebサイトを開発したことがある場合は、インターフェイスの複数のバージョンを維持するために必要なことがわかります(左から右または右側など)。このニーズを満たすために、W3Cは論理属性の新しい概念を導入しました。物理的な方向(右または左など)について考える方法、むしろ論理的な方向は、始まり、終わります。仕様はまだ進行中ですが、すでに

プラグインで試してみることができます。 postcss-logical-props

>、border-block-startborder-block-endoffset-block-start たとえば、offset-block-end次のcssがある場合:

オプションを使用してプラグインを呼び出す
.article {
  font-size: initial;
  color: initial;
  padding: initial;
  margin: initial;
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
は、次の結果が生成されます。

{ dir: 'LTR' }

を使用している間、鏡像が提供されます:
.article {
  font-size: medium;
  font-size: initial;
  color: #000;
  color: initial;
  padding: 0;
  padding: initial;
  margin: 0;
  margin: initial;
}
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

{ dir: 'RTL' }新しいカラー関数

.container {
  all: initial;
}
ログイン後にコピー
ログイン後にコピー
POSTCSSは、色を処理するための新しい機能を提供する完全なプラグインのセットを提供します。

色調整

プラグインは、新しい

関数を実装します。この関数を使用すると、1つ以上の「カラーアジャスター」関数を使用して、基礎となる色を変更できます。各カラーアジャスターは、特定の方法で色を操作できます。

postcss-color-functionここにそれを使用する方法のいくつかの例があります:color()

次の色にコンパイルします:

.container {
  /*  此处省略大量重置属性  */
  all: initial;
}
ログイン後にコピー
カラーアジャスターの完全なリストは、

hwbカラー表記
:root {
  --text-color: red;
  --background: blue;
}

h1 {
  color: var(--text-color);
  font-size: var(--font-size, 20px);
}
button {
  background-color: var(--background);
}
ログイン後にコピー

HWBは、色を定義する代替方法である色合いの黒さの略です。色を記述するために0から360の色合いの値を使用し、0%に100%白さと黒さを追加します。この表記はHSLに似ており、RGBよりも理解しやすいです。

プラグインは、HWBの色を定義するために新しい

関数を実装します。いくつかの例:

postcss-color-hwb次の色が生成されます:hwb()

h1 {
  color: red;
  font-size: 20px;
}
button {
  background-color: blue;
}
ログイン後にコピー
gray()関数

CSSカラーモジュールには、便利な
.text {
  border-block-start: 1px solid blue;
  text-align: start;
  padding-block-end: 10px;
  margin-block-start: 20px;
}
ログイン後にコピー
関数も導入されます。 RGB色の3つのチャネルすべてなど、冗長な情報を指定せずにグレーを生成するために使用できます。

プラグインは、この機能のポリフィルを実装し、非常に簡単に使用できます。

上記のコードは、さまざまな色合いの灰色を生成します:gray() postcss-color-gray

要約
.text {
  border-left: 1px solid blue;
  text-align: left;
  padding-right: 10px;
  margin-left: 20px;
}
ログイン後にコピー

これは、利用可能なすべてのCSSプラグインの完全なリストではありませんが、より興味深いプラグインを選択するだけです。 postcss.partsでより多くのプラグインを探索できます。

.text {
  border-right: 1px solid blue;
  text-align: right;
  padding-left: 10px;
  margin-right: 20px;
}
ログイン後にコピー
CSSは活況を呈しており、PostCSSは活況を呈しています。はい、私たちは皆、ブラウザによってこれらの新機能に対するネイティブサポートを熱心に待っていますが、PostCSSはこれらの機能を早期に採用および評価する有望な機会を提供します。ここでの全体的なアドバイスは、馴染みのあるプリプロセッサの使用から後退し、新しい観点からスタイルシートを書くことを検討しようとすることです。生産性を向上させる可能性のある利用可能な機能をリストし、ワークフローで使用できるようにしてください。すぐに、これらが不足している機能であることに気付くかもしれません。

PostCSSを使用して今後のCSS機能を有効にすることについてよく聞かれる質問(記事が長すぎて擬似オリジナルの目標と一致しないため、FAQパーツはここで省略されています。PAQパーツは必要に応じて再編成および書き直すことができますが、元の意図は変わらない。

以上がPostCSSで今後のCSS機能を有効にしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは' Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

WordPressブロックエディターでのマークダウンとローカリゼーションを使用します WordPressブロックエディターでのマークダウンとローカリゼーションを使用します Apr 02, 2025 am 04:27 AM

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

スティッキーヘッダーとフッターにCSSグリッドを使用する方法 スティッキーヘッダーとフッターにCSSグリッドを使用する方法 Apr 02, 2025 pm 06:29 PM

CSS Gridは、レイアウトをこれまで以上に簡単にするように設計されたプロパティのコレクションです。何でもするように、少し学習曲線がありますが、グリッドは

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

See all articles