CCSS(コンポーネントCSS)の導入
キーテイクアウト
- CCSS(コンポーネントCSS)は、大規模なWebアプリケーションのオーサリングエクスペリエンスを簡素化するように設計されたCSSアーキテクチャであり、保守可能で管理可能で、スケーラブルです。マークアップとスタイルが再利用可能なHTML要素にバンドルされるコンポーネントベースのWeb開発を促進します。 CCSSの主な原則には、小さく独立した再利用可能なコンポーネントの作成が含まれます。コンポーネントがモジュール化され、分離されていることを確認します。構成可能で予測可能なCSSを書く。すべてのCSSコンポーネントを明確に文書化します
- CCSSは、主にSMACSSおよびBEMの方法論に基づいて、特定のディレクトリ構造と命名規則を利用しています。また、CSSコンパイルやHTML検証など、一般的なタスクを自動化するためにGruntのようなタスクランナーの使用を促進します。 CCSSは、スタイルをモジュール化することにより、Webアプリケーションのスケーラビリティ、保守性、パフォーマンスを改善し、アプリケーション全体でスタイルが衝突するリスクを減らし、ブラウザがレンダリングされているコンポーネントのスタイルのみを解析できるようにします。 JavaScriptフレームワークと互換性があり、SASS、LESS、STYLUSなどのCSS前処理者と一緒に使用できます。
- CCSS、またはコンポーネントCSSは、大規模なWebアプリケーションのCSSオーサリングエクスペリエンスを簡素化するアーキテクチャです。
- 大規模なWebアプリケーションには一般に多くのCSSファイルがあり、多くの場合、多くの開発者がこれらのファイルに同時に作業しています。非常に多くのフレームワーク、ガイドライン、ツール、および方法論(OOCS、SMACSS、BEMなど)が出現したため、開発者は保守可能で管理可能で、スケーラブルなCSSアーキテクチャが必要です。 フロントエンジニアとして、コンポーネントベースのWeb開発が今後の道だと思います。 Webコンポーネントは、W3Cを介して機能している標準のコレクションです。それらは、マークアップとスタイルを再利用可能なHTML要素に束ねることができます。これが意味することは、コンポーネントベースのCSS開発について考え始める必要があることです。ブラウザメーカーがこれらの標準を実装している間、その間に
を使用できます。
CCSSとは何か、そしてあなたがそれをどのように使用できるかを正確に見てみましょう。 CCSSの要素 以下は、CCSSアーキテクチャに最適な構成を実現するために完全または修正された方法で使用される主要な要素です。smacss
Jonathan Snookによって作成された SMACSSは、CSSのスケーラブルでモジュラーアーキテクチャの略です。これは、厳格なフレームワークというよりもスタイルガイドです。 CCSSがそれを使用するとき、構造の背景についてはSMACSSについて読む。 BEMは、「ブロック」、「要素」、「モディファイア」の略です。これは、Webインターフェイスを開発する際の新しい考え方であるフロントエンドの方法論です。 Yandexの人たちはBEMを思いつき、より多くの情報をハリー・ロバーツの素晴らしい記事に記載しています。
コンパス を使用する必要があります。これもまた、優れたものであり、バーボンであり、最初の外観は素晴らしい選択肢です。
CCSSの原則
コンポーネントには、UIの特定の部分に必要なすべてのものがあり、単一の焦点が必要です。各コンポーネントは分離する必要があります。つまり、別のコンポーネントを直接変更または依存しないことを意味します。
再利用は依存関係や緊密な結合を増加させ、最終的にCSSの管理しやすくするため、コンポーネント全体でコードの再利用よりも分離が重要です。
予測可能 予測可能性とは、cssを作成すると、予想通りにルールが動作することを意味します。これは、多くのページがある大規模なアプリケーションにとって重要です。過度に複雑なセレクターや一般的なクラス名を使用しないでください。これらは予測不可能なCSSにつながる可能性があるためです。
ディレクトリ構造 上記のフォルダーツリー内のSCSS/フォルダー内のファイルのみを編集/作成します。これにより、外部ライブラリを簡単に更新できます。これは、ext/フォルダーにあります。多くのアプリケーションは、BootstrapやFoundationなどの外部CSSフレームワークから始まるため、Ext/内のサンプルセットアップに追加しました。しかし、すべてのCSSをゼロから書くことは絶対に問題ありません。上記の他のすべてがまだ当てはまります。 コンポーネント/ディレクトリの例は、AngularJSアプリケーションに適していますが、他のフレームワークまたはアプリケーション用にカスタマイズできます。詳細については、以下の「アーキテクチャ」セクションにあります
命名規則 - 簡略化されたbem 。要素名とモディファイア名は、それぞれ要素名と修飾名です。ファミン( - )を使用してコンポーネント名を分離しないでください。これらは要素/要素名の開始を意味します。
アーキテクチャとデザイン
Gruntは、多くの一般的な雑用(CSSのコンパイルやHTMLの検証など)を自動化できる素晴らしいタスクランナーです。他のタスクランナーもあります。理想的なワークフローでは、開発中のファイルを監視し、変更が行われたときにCSSを再コンパイルするために1つを使用することが含まれます。
base/は、アプリケーション全体で使用されるグローバルベーススタイルを保持する場所です。
画像.SCSSは、SCSSコンパイルソースとして使用されます。すべてのサイト画像をデータURIとして定義し、インライン化する必要があります。 /app/styles/images.cssは、このファイルから生成されます
_BootStrap-Overrides.scssは、フレームワークのオーバーライドのみを保持します。フレームワークセレクターの特異性のレベルが非常に高いため、それらをオーバーライドするには長い特定のセレクターが必要です。グローバルレベルでのオーバーライドは、SCSSコンポーネントのコンテキストで行われないでください。代わりに、すべてのグローバルなオーバーライドはここにあります。 上記の再利用可能なCSSの単位は、「コンポーネント」と見なされます。 Angularjsを使用しているため、View/Page、Directive、および標準の3種類のCSSコンポーネントに分類しました。したがって、SMACSから派生したディレクトリ構造
が得られました。また、典型的なBEMスタイルを - 、 - 、および__文字で使用することから離れるとき、多くの混乱を回避しました。
また、コンポーネント内のCSSクラス定義順序がHTMLビューを反映することも重要です。これにより、クラスをスキャン、スタイル、編集、適用が簡単になります。最後に、Webアプリケーションのための広範なスタイルガイドを持ち、CSSとSASSのガイドラインに従うことをお勧めします(@extendを避けます)
これは、次のCSSにコンパイルされます:
そして、CCSSに関連するクレジットと有用なリソースについては、必ずリポジトリをチェックしてください。ご質問やコメントがある場合は、下のコメントまたはGitHubリポジトリに投稿してください。 従来のCSSは、HTMLで書かれたドキュメントの外観とフォーマットを説明するために使用されるスタイルシート言語です。レイアウト、色、フォントなど、コンテンツをプレゼンテーションから分離できるように設計されています。一方、CCSS(コンポーネントCSS)は、スタイルが特定のコンポーネントに直接リンクされているスタイリングに対する最新のアプローチです。これは、スタイルがコンポーネントに局所的にスコープされ、アプリケーション全体でスタイルが衝突するリスクを減らすことを意味します。このアプローチにより、スタイルがよりメンテナンスしやすく、モジュール化され、スケーリングが容易になります。 JavaScriptフレームワークでCCSを使用できますか? React、Angular、Vue、またはその他のフレームワークを使用している場合でも、CCSSを使用してコンポーネントをスタイリングできます。これにより、CCSSはフロントエンド開発者にとって汎用性の高いツールになります。 CCSSは主に個々のコンポーネントのスタイリングに使用されますが、グローバルスタイルも処理できます。グローバルスタイルを別のファイルに定義し、必要に応じてコンポーネントにインポートできます。これにより、CCSSのモジュール性の恩恵を受けながら、アプリケーション全体で一貫したルックアンドフィールを維持できます。使用するには、いくつかの制限があります。メディアクエリ、擬似クラス、または擬似要素を使用することはできません。また、特異性が最も高く、スタイルをオーバーライドすることの困難につながる可能性があります。一方、CCSSは、メディアクエリ、擬似クラス、擬似要素を使用する機能など、CSSの全力を提供します。また、インラインスタイルよりも特異性が低いため、必要に応じてスタイルを簡単に上書きします。 はい、SASS、Less、StylusなどのCSS Precessorsを使用できます。これにより、変数、ミキシン、ネストされたルールなどのこれらの前処理者の力を活用しながら、CCSSのモジュール性とスケーラビリティの恩恵を受けています。 bem
Yandexの開発者によって作成された
SASSは、超大国を持つCSSです。強くお勧めしますが、必要に応じて使用することもできます。詳細については、SASSドキュメントを参照してください
コンパスにはクラスの定義はありません。これは、多くのユーティリティを提供するSASSの拡張機能です。一般的な便利なミキシンとSASSコンピレーションに使用されます。コンパスミックスインは、ベンダーのプレフィックスが必要な場合には、ほぼ
常にCCSSの主要な原則を見てみましょう
コンポーネントベースモジュラーと分離
書くのに費やす時間を短縮することを目的とした方法でCSSを執筆する場合、スタイルを変更または追加するための要素のHTMLクラスを変更するのにもっと時間を費やす方法で考える必要があります。すべての開発者がCSS戦争と戦うよりもレゴブロックを組み立てるような場合、CSSを作成するのははるかに簡単です。 CSSクラスは、スタイルを構成するために使用する必要があるビルディングブロックです。
ほとんどの人は、CSSが自明であると仮定しています。実際、これは通常そうではありません! CSSコンポーネントには、それらが何をするか、どのように使用すべきかを説明する明確なドキュメントが必要です。
styles
├── bootstrap.css
├── ext
│ ├── bootstrap
│ │ ├── _settings.scss
│ │ └── bootstrap.scss
│ └── font-awesome
│ └── font-awesome.scss
├── font-awesome.css
├── images.css
├── main.css
└── scss
├── _config.scss
├── base
│ ├── _animation-classes.scss
│ ├── _base-classes.scss
│ ├── _base.scss
│ └── images.scss
├── components
│ ├── directives
│ │ ├── _empty-state.scss
│ │ ├── _legend.scss
│ │ └── _status-message.scss
│ ├── pages
│ │ ├── _404.scss
│ │ └── _redirect.scss
│ └── standard
│ ├── _alarm-state.scss
│ ├── _graph-message.scss
│ └── _panel.scss
├── main.scss
├── mixins
│ ├── _animation.scss
│ ├── _bem.scss
│ └── _icon.scss
└── themes
└── _light.scss
U-ClassName - グローバルベース/ユーティリティクラス
境界であることを示します grunt
SMACSSから派生したディレクトリ構造をもう一度調べます。すべての外部フレームワーク(Bootstrapなど)を含むExt/ディレクトリに注意してください。アップグレードを容易に保つために、これらを変更する必要はありません。代わりに、オーバーライドと拡張機能をベース/ディレクトリに配置する必要があります。
_Base-Classes.scssはすべて、多くのページ、ビュー、コンポーネントにわたってアプリケーション全体で使用されるユーティリティクラスです。 u-
を使用した接頭施設クラス名
コンポーネント
styles
├── bootstrap.css
├── ext
│ ├── bootstrap
│ │ ├── _settings.scss
│ │ └── bootstrap.scss
│ └── font-awesome
│ └── font-awesome.scss
├── font-awesome.css
├── images.css
├── main.css
└── scss
├── _config.scss
├── base
│ ├── _animation-classes.scss
│ ├── _base-classes.scss
│ ├── _base.scss
│ └── images.scss
├── components
│ ├── directives
│ │ ├── _empty-state.scss
│ │ ├── _legend.scss
│ │ └── _status-message.scss
│ ├── pages
│ │ ├── _404.scss
│ │ └── _redirect.scss
│ └── standard
│ ├── _alarm-state.scss
│ ├── _graph-message.scss
│ └── _panel.scss
├── main.scss
├── mixins
│ ├── _animation.scss
│ ├── _bem.scss
│ └── _icon.scss
└── themes
└── _light.scss
<span>.ProductRating {
</span> <span>// nested element
</span><span> <span>@include e(title) {</span>
</span> <span>...
</span> <span>}
</span> <span>// nested element
</span><span> <span>@include e(star) {</span>
</span> <span>...
</span> <span>// nested element's modifier
</span><span> <span>@include m(active) {</span>
</span> <span>...
</span> <span>}
</span> <span>}
</span><span>}</span>
<span><span>.ProductRating</span> {
</span> ...
<span>}
</span><span>// nested element
</span><span><span>.ProductRating-title</span> {
</span> ...
<span>}
</span><span>// nested element
</span><span><span>.ProductRating-star</span> {
</span> ...
<span>}
</span>// nested element's <span>modifier
</span><span><span>.ProductRating-star--active</span> {
</span> ...
<span>}</span>
コンポーネントCSS(CCSS)
に関するよくある質問
CCSSと従来のCSSの主な違いは何ですか?
CCSSは、プロジェクトのスケーラビリティをどのように改善しますか?従来のCSSでは、プロジェクトが成長するにつれて、CSSファイルも成長し、管理が困難になります。ただし、CCSSでは、各コンポーネントには独自のスタイルがあり、管理と拡張が容易になります。アプリケーションの残りの部分に影響を与えることなくコンポーネントを簡単に更新または変更できます。
CCSSはグローバルスタイルをどのように処理しますか?
CCSSは、個々のコンポーネント、CCSSにスタイルをスコープすることにより、Webアプリケーションのパフォーマンスをどのように改善しますか? Webアプリケーションのパフォーマンスを大幅に改善できます。従来のCSSでは、ブラウザはCSSファイル全体を解析してページをレンダリングする必要があります。これにより、レンダリングプロセスが遅くなる可能性があります。ただし、CCSSを使用すると、ブラウザは現在レンダリングされているコンポーネントのスタイルを解析するだけで、ページの読み込み時間が速くなります。
CCSSを使用してCSS Pre-Processorsを使用できますか?
以上がCCSS(コンポーネントCSS)の導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

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

ホットトピック











新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

この2部構成のシリーズの最初の部分では、2つの親指スライダーを取得する方法を詳しく説明しました。今、私たちは&#039; llが一般的なマルチサンプスのケースを見ていますが、別のものと

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

Goofontsは、開発者妻とデザイナーの夫によって署名されたサイドプロジェクトであり、どちらもタイポグラフィの大ファンです。 Googleにタグを付けています

ドキュメントヘッドはウェブサイトの中で最も魅力的な部分ではないかもしれませんが、それに入るものは間違いなくあなたのウェブサイトの成功にとってそれと同じくらい重要です
