ホームページ ウェブフロントエンド htmlチュートリアル リファクタリング: CSS もオブジェクト指向_html/css_WEB-ITnose

リファクタリング: CSS もオブジェクト指向_html/css_WEB-ITnose

Jun 24, 2016 pm 12:01 PM
css リファクタリング オブジェクト指向

私がオブジェクト指向 CSS に出会ったのは、プロジェクト内の CSS が 8,000 行を超え、制約や管理が不足しており、近い将来、または近い将来、早急に再構築する必要があるためです。フロントエンドのリファクタリングでは、JavaScript のオブジェクト指向のリファクタリングについてすでに説明しました。今回は、私の仕事に非常に良いアイデアを提供する CSS のオブジェクト指向とモジュール化について見てみましょう。

まず第一に、私が言いたいのは、この激動の概念の時代において、特定の概念や意味を頑固に追求するだけでは、より良いデザインやより高い生産性は得られない、ということです。オブジェクト指向は一つの考え方であり、それだけで十分です。これは、CSS の再構築にインスピレーションをもたらす方法論であると言えます。OO CSS の定義や厳密性について心配する必要はありません。

CSS コードでどのような問題が発生しましたか?

CSS の名前を見ただけでは、どのモジュールがそれを参照しているのか、またこの CSS が Web ページのどの部分に使用されているのかを判断するのは困難です

そのため、誰も変更や削除をしようとはしません。 、その後のスタイルは

しかありません。CSS 名が重複するのを恐れて、s1、s2、t1、t2 などの名前が登場し始めました。これは、これらのスタイルが何をするのか誰も知りません。 、CSS はますます大きくなっています ;

ハイファイ アーティストとビジネス開発者の考え方はまったく異なります。CSS の定義と命名にはさまざまなスタイルがあります。

場合によっては、CSS の競合も発生します。文: 複雑さはすべてのソフトウェア問題の根源です。

CSS 再構築の原則:

垂直モジュール化: 次のような CSS モジュール ファイルを作成します。

水平モジュール化: 一部の場合に適用可能プレーヤー モジュールやポップアップ レイヤー モジュールなどの独立性の高いコンポーネント。

ガイドとなる CSS を提供します。たとえば、リスト型の表示スタイルのセットをいくつか用意し、システム全体のすべてのリスト表示をこの場所に集めます。将来のスキンの比較と変更は、アーティストにとって非常に容易になります。

CSS の原則: 同じ機能領域の 2 つのスタイルが非常に似ている場合は、1 つだけを保持してください。

フレーム(列)はグリッドを使用して幅を制御し、コンテンツは高さを制御します。ページが複数の列で構成されている場合、各列の幅はチャネルによって固定または比例して固定できますが、高さは必要です。内容に応じて。

CSSのルールが決定した後は、オープンソースやコスト削減の観点から制御・管理する必要がある一方で、新たに追加されたCSSはルールに従って動作する必要があり、そのためには忠実度の高いデザイナーが必要となります。ビジネス開発者は要件を設定する必要がありますが、一方では元の CSS を徐々に再構築する必要があります。

CSS 自体は継承とモジュール化をサポートしています。さらに、HTML ページでは、「div class="player wmpPlayer"」などのスタイルや拡張スタイルも比較的簡単に使用できます。

ある日、プロジェクトのフロントエンドが非常に複雑になり、HTML に UML モデリングが必要になった場合は、それに CSS も追加します。 DOM とその関連モデルおよび関連モデルは、モデリングに非常に適しています。


最後に http://oocss.org/ の例で終わります:

Css コード

    1. /* **************** テンプレート ***************** */
    2. /* ===== = ページのヘッド、ボディ、およびフット ====== */
    3. body{/*_text-align:center;*/}/* IE5.5 */
    4. .body{overflow:hidden; _オーバーフロー:表示; _zoom:1;}
    5. .page{margin: 0 auto; width: 950px;/*_text-align:left;*/} /* 他のテンプレート要素をラップして幅を設定します */ /* text-align IE5.5 */
    6. /* 「オールドスクール」および「リキッド」ページを拡張します異なるページ幅を許可する*/
    7. .oldSchool{width:750px;}
    8. .gs960{width:960px;}
    9. .liquid{extends:.page; width: auto;margin:0;}
    10. /* ====== 列 ====== */
    11. .main{overflow: hidden;_overflow:visible;_zoom:1;}
    12. .leftCol {フロート:左; width:250px;_margin-right:-3px;}
    13. .rightCol{float:right; 幅:300px; _ margin-left:-3px;}
    14. /*列を拡張して共通の列の幅を可能にします*/
    15. .gmail{width:160px;}。 {width:240px;}
    16. .myYahoo{width:300px;}
    17. /* **************** コンテンツ オブジェクト ********** ******* */
    18. /* ====== デフォルトの間隔 ====== */
    19. h1, h2, h3, h4, h5, h6, ul, ol,dl, p ,blockquote {padding: 10px;}
    20. h1, h2, h3, h4, h5, h6,img{padding-bottom:0px;}
    21. pre{margin: 10px;}
    22. table h1,table h2,table h3 , table h4, table h5, table h6, table p, table ul, table ol, table dl{padding:0;}
    23. /* ====== 要素 ====== */
    24. img{ display:block;}
    25. em{font-style: italic;}
    26. strong{font-weight:bold;}
    27. hr{border: 5px solid #e2e2e2; ボーダー幅: 0 0 5px 0; margin: 20px 10px 10px 10px;}
    28. code{color:#0B8C8F;}
    29. /* ====== 見出し ====== */
    30. /* .h1-.h6 クラス を使用する必要があります意味的に適切な見出しレベルを維持するため - 非見出しには使用しないでください*/
    31. h1, .h1{font-size:196%; フォントの太さ:標準; フォントスタイル: 通常; color:#AE0345;}
    32. h2, .h2{font-size:167%; フォントの太さ:標準; フォントスタイル: 通常; color:#AE0345;}
    33. h3, .h3{font-size:146.5%; フォントの太さ:標準; フォントスタイル: 通常; color:#DF2B72;}
    34. h4, .h4{font-size:123.1%; フォントの太さ:標準; フォントスタイル: 通常; color: #333;}
    35. h5, .h5{font-size:108%; フォントの太さ:太字; フォントスタイル: 通常; color:#AE0345;}
    36. h6, .h6{font-size:108%; フォントの太さ:標準; フォントスタイル: 斜体; color:#333;}
    37. /* 追加の見出しが必要な場合は、追加のクラスを介して作成する必要があり、場所に依存するスタイルを使用することは決してありません*/
    38. .category{font-size:108%; フォントの太さ:標準; フォントスタイル: 通常; テキスト変換:大文字; color: #333;}
    39. .category a{color: #333;}
    40. . important a{font-weight:bold;}
    41. /* リンク */
    42. a { color: #036; font-weight:bold;text-decoration: none }
    43. a:focus, a:hover { text-decoration: underline }   
    44. a:訪問済み { color:#005a9c; }
    45. /* ====== リスト ======*/
    46. /* 番号付きリスト */
    47. ol.simpleList li{list-style-type: 10 進数; margin-left:40px;}
    48. /* standard list */
    49. ul.simpleList li{list-style-type:disc; margin-left:40px;}
    50. /* ====== 表 ====== */
    51. .data{padding: 20px; 位置:相対; zoom:1;vertical-align: top;border-right:solid 1px transparent;/*border は、データテーブルが境界線をオーバーレイする原因となるFF2のバグを修正しました*/}
    52. .data table {width:100%;border: 1px solid #AE0345;}
    53. th, td{vertical-align:top;border:1px solid #AE0345;}
    54. .txtC, .data .txtC td, .data .txtC th{text-align:center;}
    55. .txtL, .data .txtL td, .data .txtL th{text-align:left;}
    56. .txtR, .data .txtR td, .data .txtR th{text-align:right;}
    57. .txtT, .data .txtT td, .data .txtT th{vertical-align:top;}
    58. .txtB, .data .txtB td, .data .txtB th{vertical-align:bottom;}
    59. .txtM 、.data .txtM td, .data .txtM th{vertical-align:middle;}
    60. .data th,.data td{padding:3px 20px}
    61. .data thead tr{#fff0f8;}
    62. .data th{色:#000; font-weight:bold}

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ブートストラップリストでデフォルトスタイルを削除する方法は? ブートストラップリストでデフォルトスタイルを削除する方法は? Apr 07, 2025 am 10:18 AM

ブートストラップリストのデフォルトスタイルは、CSSオーバーライドで削除できます。より具体的なCSSルールとセレクターを使用し、「近接原理」と「重量原理」に従って、ブートストラップのデフォルトスタイルをオーバーライドします。スタイルの競合を避けるために、よりターゲットを絞ったセレクターを使用できます。オーバーライドが失敗した場合は、カスタムCSSの重量を調整します。同時に、パフォーマンスの最適化に注意を払い、重要な!の過剰使用を避け、簡潔で効率的なCSSコードを書いてください。

ブートストラップボタンの使用方法 ブートストラップボタンの使用方法 Apr 07, 2025 pm 03:09 PM

ブートストラップボタンの使用方法は?ブートストラップCSSを導入してボタン要素を作成し、ブートストラップボタンクラスを追加してボタンテキストを追加します

ブートストラップのレイアウト方法 ブートストラップのレイアウト方法 Apr 07, 2025 pm 02:24 PM

Bootstrapを使用してWebサイトをレイアウトするには、グリッドシステムを使用してページをコンテナ、行、列に分割する必要があります。最初にコンテナを追加し、その中の行を追加し、行内の列を追加し、最後に列にコンテンツを追加します。ブートストラップのレスポンシブレイアウト関数は、ブレークポイント(XS、SM、MD、LG、XL)に従ってレイアウトを自動的に調整します。レスポンシブクラスを使用することで、異なる画面サイズの下の異なるレイアウトを実現できます。

ブートストラップのサイズを変更する方法 ブートストラップのサイズを変更する方法 Apr 07, 2025 pm 03:18 PM

Bootstrapの要素のサイズを調整するには、次のものを含むDimensionクラスを使用できます。

ブートストラップに写真を挿入する方法 ブートストラップに写真を挿入する方法 Apr 07, 2025 pm 03:30 PM

ブートストラップに画像を挿入する方法はいくつかあります。HTMLIMGタグを使用して、画像を直接挿入します。ブートストラップ画像コンポーネントを使用すると、レスポンシブ画像とより多くのスタイルを提供できます。画像サイズを設定し、IMG-Fluidクラスを使用して画像を適応可能にします。 IMGボーダークラスを使用して、境界線を設定します。丸い角を設定し、IMGラウンドクラスを使用します。影を設定し、影のクラスを使用します。 CSSスタイルを使用して、画像をサイズ変更して配置します。背景画像を使用して、背景イメージCSSプロパティを使用します。

ブートストラップにファイルをアップロードする方法 ブートストラップにファイルをアップロードする方法 Apr 07, 2025 pm 01:09 PM

ファイルアップロード機能は、Bootstrapを介して実装できます。手順は次のとおりです。BootstrapCSSおよびJavaScriptファイルを紹介します。ファイル入力フィールドを作成します。ファイルアップロードボタンを作成します。ファイルのアップロードを処理します(FormDataを使用してデータを収集し、サーバーに送信します)。カスタムスタイル(オプション)。

ブートストラップフレームワークを構築する方法 ブートストラップフレームワークを構築する方法 Apr 07, 2025 pm 12:57 PM

ブートストラップフレームワークを作成するには、次の手順に従ってください。CDN経由でブートストラップをインストールするか、ローカルコピーをインストールします。 HTMLドキュメントを作成し、ブートストラップCSSを< head>にリンクしますセクション。 bootstrap javascriptファイルを< body>に追加するセクション。ブートストラップコンポーネントを使用して、ニーズに合わせてスタイルシートをカスタマイズします。

ブートストラップリストのサイズを変更する方法は? ブートストラップリストのサイズを変更する方法は? Apr 07, 2025 am 10:45 AM

ブートストラップリストのサイズは、リスト自体ではなく、リストを含むコンテナのサイズに依存します。 BootstrapのグリッドシステムまたはFlexBoxを使用すると、コンテナのサイズを制御することで、リスト項目を間接的に変更します。

See all articles