検索
ホームページウェブフロントエンドhtmlチュートリアルフロントエンド開発を長年行ってきた後、CSS モジュール開発について聞いたことがありますか? _html/css_WEB-ITnose

フロントエンドのモジュール開発と言えば、ほとんどの人は js のモジュール開発しか思い浮かばないかもしれません。インターネット上には確かにさまざまな js のモジュール化手法がありますが、CSS のモジュール開発について話している人はほとんどいません。 JS は業界の seajs や KISSY ローダーなどのプログラミング言語であるため、フロントエンド エンジニアはモジュール方式を使用してページを作成し、パッケージ化し、オンラインにすることができます。 CSS の世界ではそのようなことはありません。

その後、CSS の世界に SASS や LESS などの言語が登場しましたが、LESS はモジュール化をサポートすることが非常に適切であると言えます。 @import 'xxx.less ' はモジュール化を容易にするために他のlessファイル(モジュール)をインポートできます。最近、CSS のモジュール化について勉強しているので、モジュール化に関する情報をたくさん調べて、確かに学んだことがあります。今日は、私が知っている CSS のモジュール化開発方法を紹介します。

実際、CSS 仕様ではモジュール関連のコンテンツ、つまり @import 構文についてすでに言及されています。この構文は、現在の主流ブラウザ (もちろん ie6 も含む) でネイティブにサポートされています。 CSS の最も基本的な部分なので、使い方については詳しく説明しません。使い方がわからない場合は、自分で調べてください。なぜほとんどの人が使用しないのでしょうか? おそらく、実稼働環境で @import を単独で使用すると重大なパフォーマンスの問題が発生し、ブラウザーや使用方法が異なるとパフォーマンスも異なるため、非常に憂鬱になるからです。ただし、これは @import が CSS モジュール化のための強力なツールになることを妨げるものではありません。

おそらく @import は CSS モジュール化の問題を解決するために生まれました。まずは CSS モジュール性の利点を確認するための例を見てみましょう:

従来の開発

大規模な Web サイトのホームページを開発したい場合、HTML ヘッドは次のようなスタイルを参照する必要があります:

ページの場合パフォーマンスを向上させ、http リクエストの作成の消費を減らすために、この例では、ページ上のすべてのスタイルが style.css で記述されるように、リンク CSS ファイルの数をできるだけ減らすことを選択します。大規模な Web サイトの場合、このファイルがどれほど長くなるか想像できるでしょう。バグが発生した場合、または何かを変更したい場合、コストは比較的大きくなり、業界には CSS 開発の進歩を加速するために従うべき成熟したベスト プラクティスや慣例が存在しないことがよくあります。特定の機能を変更する可能性があります。コードは CSS 内の別の場所に配置されます。特定の機能を削除したい場合は、ページの CSS コードを簡単に削除しないでください。

この時点で、CSS モジュール性の利点が明らかになります。

モジュール開発

ページは変更されません。引き続きそのスタイル style.css のみを参照しますが、ファイルの内容は次のスタイルに変更されます:

/*xxx ページ エントリ スタイル ファイル style.css*/

@ import './css/base.css';/*基本的なページスタイル*/

@import './css/index.css';

@import './css/header.css';

@import './css/footer.css';

...

上記は複数モジュールのスタイルファイルです

ここでは、style.css内の紛らわしいスタイルを一つずつサブファイルに分割し、モジュールとして。ご覧のとおり、例として、ページのいくつかのリセット スタイルといくつかの一般的なサイト スタイルを css ディレクトリの Base.css に配置し、ヘッダーを header.css に分割し、ページの基本レイアウトをIndex.css ファイルでは、一番下のスタイルが footer.css に配置されます。対応するコードが対応するモジュールに記述されると、シンプルで保守しやすく見えませんか?

モジュール化の @import 形式を使用すると、シンプルなだけでなく、次の利点もあります:

1. ブラウザーのネイティブ サポート

これが、このツールまたはこのモジュール形式のハイライトです。 Less を開発環境で便利に変更したい場合は、追加の js ファイルを導入するか、less のリアルタイム コンパイルなどの方法を使用する必要があります。この @import xxx.css ファイル方法を使用すると、開発段階で簡単に直接デバッグできます。 style.css ファイルを解析するために追加の js ファイルを導入する必要はありません。 style.css ファイルはページに直接導入されており、http ウォーターフォール チャートから、base.css、index.css などが 1 つずつ読み込まれていることがわかります。

2. 特定のモジュールを削除するのが便利です

これはすべての言語でのモジュール化の利点です。たとえば、ある日、PD がホームページの下部のスタイルを変更したいと言いました。以前は、html クラスで直接変更してから、新しいスタイルを style.css に直接追加することが多かったのですが、間違ったものを削除してしまう可能性があるため、古いスタイルは削除しませんでした。継続的なバグ修正により、コードがランダムに記述される可能性があるため、見逃されます。モジュラー ソリューションでは、@import './css/footer.css' 行を直接コメント アウトしてから、新しいスタイルを @import します。この方法では、たとえオンラインになったとしても、PD は効果が良くないと言いました。元のものに戻したいのですが、コメントを変更して再パッケージするだけで非常に便利ではないでしょうか。

3. 日常のさまざまなニーズを簡単に管理できます

さて、ページは準備ができてオンラインになりました。今日、PD が頭痛を抱えていたため、ホームページの右側に機能を追加して提案フィードバック ポータルを追加したいと言いました。以前は、style.css を開く必要がありました。追加する場所を検討するか、最後の場所に何を配置しても最後に直接追加します。モジュール化を採用した後、style.css の末尾に @import './css/フィードバック.css' を追加して、コメントを追加できます: /* 2012-12-06 PD では提案とフィードバックの追加が必要です*/。今後、他のモディファイアも、あなたのモジュールが本当に優れていることをすぐに知ることができます。

4. 共同開発の促進

これは、すべての言語のモジュール化の利点でもあります。大規模なプロジェクトの場合、ファイルを共同開発することが多く、コンフリクトが発生する可能性が非常に高く、細かい箇所を変更してサブミットするとコンフリクトが発生し、バグ修正の10倍の時間がかかります。その後、さらに 10 個の新しいバグが発生するかどうかはまだわかりませんが、モジュール化により、各担当者がどのモジュールを担当するかが明確になり、問題が発生する可能性が低くなります。

5. 複数人での共同作業に便利

依存関係はパッケージ化スクリプトの設定ファイルではなく、エントリファイルに記述されます。このようにして、開発とパッケージ化が分離され、モジュールの追加または削除の際にパッケージング構成を変更する必要がないため、複数人でのコラボレーションが容易になります。

OK、CSS のモジュール化と @import フォームを使用して独自のモジュールを整理する方法について話しましたが、このフォームが目を輝かせると思いませんか?ただし、開発直後にオンラインにすると、ページにいくつかの問題が発生します。いくつかの明らかな問題を取り上げます:

1. @import ファイルは追加のリクエストであるため、ページがロードされる (スタイルがロードされない) とき、しばらくの間ヌードが表示され、待機する必要があります。これらのモジュールを 1 つずつロードしています。

2. リクエストが多すぎて、ページのパフォーマンスが低下し、サーバーへの負荷が比較的高くなります。

3. ブラウザーや書き込みフォームが異なると、読み込み順序が異なる場合があります。

したがって、最良の方法はモジュールをパッケージ化することです。これは、js のモジュール化、モジュール開発、そしてオンライン化する前のパッケージ化と同じなので、完全にオンラインで使用できます。

CSS Combo: CSS モジュールのパッケージ化ツール

js パッケージングと同様に、通常は備え付けのパッケージ化ツールがあります。 CSS の場合、多くの人は ant の concat または grunt の concat を使用します。これの欠点は、CSS モジュールの依存関係をパッケージ化スクリプトの構成ファイルに記述する必要があり、メンテナンスに役立たないことです。新しいモジュールを追加するときに、パッケージ化スクリプトの構成を変更するのを忘れて、それを送信した後、スクリプトが有効になっていないことが判明することがよくあります。しばらく確認してみたら、梱包されていないことが分かりました。

上で紹介した @import フォームを使用して CSS を整理する場合は、サポートするパッケージ化ツール CSS コンボを使用できます:

まず CSS コンボをインストールします:

npm install -g css-combo

次に、エントリ ファイルがあるディレクトリ (この例では style.css) を入力し、次のように入力します:

csscombo style.css style.combo.css

これにより、style.css ファイルが style.combo.css ファイルにパッケージ化されます。 。とてもシンプルです。もちろんgulpと併用することもでき、さらに便利です。

いくつかのベストプラクティス

まず最初に、@import 構文を注意深く読む必要があることを皆さんに思い出してもらいます。

@import "./css/style1.css";

ここでの私の個人的な提案は、相対パスを使用することです。もちろん、オンラインとローカルの絶対パスもサポートされており、チームのコラボレーションに役立つパスにする必要があります。 。

CSS 仕様では、@import は次のように他のスタイルの前に配置する必要があることに注意してください:

@import "./css/style.css";

@import "./css/style2.css ";

body{

margin:0px;

padding:0px;

}

そして次のような書き方:

@import "./css/style.css";

body{

margin:0px;

padding:0px;

}

@import "./css/style2.css";

mod2.css はブラウザーで @import できません。したがって、管理を容易にするために、すべてのモジュールのインポートをエントリ ファイルの先頭に配置することをお勧めします。

使用量を減らしてみませんか

チームの誰もが少ない知識を持っているわけではありませんし、誰もが少ない量を好むわけではありません。さらに、less は gbk エンコードをサポートしていません。デバッグには、ページのセットを開発するときに保持される js の一部を導入する必要があります。 。 。実際、最も根本的な理由は、less と css コンボは異なる問題を解決するため、less は css のプログラミングに重点を置き、css コンボは css モジュールのパッケージ化のみに焦点を当てているためです。

今日はここまでです。もし私が注意深く説明していないことがあれば、お知らせください。個人の WeChat 公開アカウントをフォローして、一緒に学び、一緒に進歩することを歓迎します。羅太から学び、最後まで戦うために毎日記事を共有します。

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

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター