.g- left2{}
/* 推奨: 短く意味のある名前を使用する */
.m-list .wrap2{}
.g-side2{}
同じセマンティクスによる異なるクラスの名前付け 方法: 区別するために数字または文字を追加するだけです (例: .m-list、.m-list2、.m-list3 などはすべてリスト モジュールですが、完全に異なるモジュール)。 その他の例: .f-fw0、.f-fw1、.s-fc0、.s-fc1、.m-logo2、.m-logo3、u-btn、u-btn2 など。 モジュールやコンポーネントの拡張クラスの命名方法 A、B、C、...が同じ種類で見た目もほとんど違いが無い場合、その中で最も出現率の高いものが となります。が基本クラスとして使用され、その他は基本クラスの拡張が使用されます。 メソッド: + "-" + 数字または文字 (例: .m-list の拡張クラスは .m-list-1、.m-list-2 など)。 追加: 基本クラス自体は独立して使用できます (例: class="m-list")、拡張クラスは基本クラスに基づいて使用する必要があります (例: class="m-list m-list) -2")。 拡張クラスがさまざまな状態を表す場合は、u-btn-dis、u-btn-hov、m-box-sel、m-box-hov などの名前を付けて、次のように使用できます。これ: クラス ="u-btn u-btn-dis"。 Web サイトが IE6 などのブラウザと互換性がない場合、ステータスを識別する方法として、独立したステータス分類 (.z-) メソッド (.u-btn.z-dis、.m-box.z-) を採用することもできます。 sel を作成し、次のように使用します: class="u-btn z-dis"。 モジュールとコンポーネントの子孫セレクターの拡張クラス モジュール内に同様のものが存在する場合がありますが、コンポーネントや拡張機能にしなくても、子孫セレクターや拡張機能を使用することもできます。 子孫セレクター: .m-login .btn{}。 子孫セレクター拡張子: .m-login .btn-1{}、.m-login .btn-dis{}。 独立したステータス分類 (.z-) メソッド: .m-login .btn.z-dis{} を採用し、それを次のように使用することもできます: class="btn z-dis"。 注: このメソッドはクラス セレクターに使用されます。タグをセレクターとして直接使用する場合は、この名前付けメソッドを使用する必要はありません。 注: 拡張クラスと子孫セレクターの大規模クラスの間での命名規則の競合を防ぐため、子孫セレクターには 1 文字を使用できません。 例: .m-list .a{} は許可されません。.a を拡張する必要がある場合、.a-bb になり、大きなカテゴリの命名規則と矛盾するためです。 グループセレクターは、拡張メソッドを置き換えることができる場合があります 同じタイプの 2 つのモジュールが非常に似ているにもかかわらず、それらの間に依存関係がないことを望む場合、つまり拡張メソッドを使用したくない場合は、次のようにすることができます。 pass セレクターを組み合わせて共通のスタイルを設定します。 このメソッドを使用する前提は、同じ型、機能、外観が似ており、メンテナンスが容易なように同じコード領域に記述されることです。
1
2
3
4
5
6
7
8
9
10
|
/* 2 つのコンポーネントの共通スタイル */
. u-tip1,.u-tip2{}
.u-tip1 .itm,.u-tip2 .itm{}
/* はそれぞれ 2 つのコンポーネントのスタイルです */
/*tip1 */ .u-tip1{}
.u-tip1 .itm{}
/*tip2 */
.u-tip2{}
.u-tip2 .itm{}
| 汚染を防ぎ、汚染されました モジュールまたはコンポーネントが互いにネストされ、同じラベル セレクターまたは他の子孫セレクターを使用する場合、内部のセレクターは外部の同じセレクターの影響を受けます。 そのため、モジュールまたはコンポーネントがネストされているか、他のモジュールまたはコンポーネントにネストされている可能性がある場合は、タグ セレクターを慎重に使用し、必要に応じてクラス セレクターを使用し、命名方法に注意してください。.m-layerxxx を使用できます。 、.m-list2 .list2xxx は、子孫セレクターの汚染を軽減します。 CSS 仕様 - コード形式 セレクター、属性、値はすべて小文字です xhtml 標準では、すべてのタグ、属性、値が小文字であることが規定されており、CSS についても同様です。 セレクター定義は 1 行で記述します セレクターの検索と読み取りが簡単、新しいセレクターの挿入と編集が簡単、モジュールの識別が簡単など。余分なスペースを削除してコードをよりコンパクトにし、改行を減らします。 ネストされた定義がある場合は、内部単一行の形式にすることができます。
1
2
3
4
5
6
7
8
9
10
11 |
/* セレクターを 1 行で定義します * / .m-list li,.m-list h3{width:100px;padding:10px;border:1px Solid #ddd;}
/* これはネストされた定義を持つセレクターです */
@media all and (max-width:600px){
.m-class1 .itm{height:17px;line-height:17px;font-size:12px;}
.m-class2 .itm{width:100px;overflow: hidden ;}
}
@-webkit-keyframes showitm{
0%{高さ:0;不透明度:0;}
100%{高さ:100px;不透明度:1;}
}
|
最後の値もセミコロンで終わります 中括弧の終了前の値は通常セミコロンを省略できますが、変更・追加・保守作業時に無用なミスやトラブルの原因となります。 値が0の場合は単位を省略します 不要なバイトを節約し、読みやすくするために、0px、0em、0%などの値を0に省略します。 1 | .m-box{margin:0 10px;background-position:50% 0;} | 一重引用符を使用してください URL 参照では引用符を省略し、その他は引用符が必要です必要に応じて一重引用符を使用します。
1
2
|
.m-box{background:url(bg.png);}
.m-box:after{content:'.';}
| を使用する16 進数は色の値を表します 透明度が必要で rgba を使用する場合を除き、表現方法 #f0f0f0 を使用して省略してみてください。 1 | .m-box{color:#f00;background:rgba(0,0,0,0.5);} | 属性の重要度に応じて順番に記述 のみ 水平方向の順序に従い、最初に配置レイアウト クラスの属性、バック ボックス モデルおよびその他の独自の属性を表示し、最後にテキスト クラスと変更クラスの属性を表示します。 ...
ディスプレイ
幅 |
フォント |
|
|
可視性
高さ |
text-align |
|
|
位置
マージン |
テキスト装飾 |
|
|
float
パディング |
垂直整列 |
|
|
クリア
ボーダー |
ホワイトスペース |
|
|
リストスタイル
オーバーフロー |
カラー |
|
|
トップ
最小幅 | 背景 |
|
1 |
.m-box{position:relative;width:600px;margin:0 auto 10px;text-align:center;color:#000;}
| 属性間に相関関係がある場合は、個別に記述しないでください。 |
12 |
/* ここでの高さは line-height に関連します */ |
.m-box{position:relative;height:20px;line-height:20px;padding:5px ;color:#000;}
| プライベートが最初、標準が最後 最初にブラウザーのプライベート フラグを記述し、次に W3C 標準を記述します。 |
1
.m-box{-webkit-box-shadow:0 0 0 #000;-moz-box-shadow:0 0 0 #000;box-shadow:0 0 0 #000 ;} | コメント形式: /* コメントテキスト */ セレクターに関するコメントはアノテーション付きオブジェクトの上の行に記述され、属性と値に関するコメントはセミコロンの後に記述されます。 コーディングエラーが発生した場合でもスタイルを正しく解析できるように、コメントコンテンツの両端にスペースが必要です。 | 必要に応じて、均一なインデントの配置を維持するブロック コメントを使用できます。 原則として、各スタイルのシリーズには、名前、目的、注意事項などを簡潔かつ包括的に記載するコメントが必要です。
7
8
9
/* 注釈テキストをブロック
* 注釈テキストをブロックします
* コメントをブロックしますtext */.m-list{width:500px;}.m-list li{height:20px;line-height:20px;/* これは line-height * /overflow:hidden に関するコメントです;}.m-list li a{color:#333;}/* 一行コメントテキスト */.m-list li em{color:#666;} 原則として、ハッキングは許可されていません 多くの非互換性の問題は、方法やアイデアを変更することで解決できますが、経験に基づいて、一部の互換性の問題を完全に回避することができます。 | 合理的な構造と合理的なスタイルでは、互換性の問題が発生することはほとんどありません。 ブラウザ自体の欠陥により、それを回避できない場合、適切なハックの使用を許可することがあります。 統一されたハック方法 IE7と6をハッキングするには、それぞれ「*」と「_」を統一して使用します。次のコードに示すように:
1
2
/* IE7 は灰色 #888 を表示し、IE6 は白 #fff を表示し、他のブラウザは黒 #000 を表示します */
| .m-リスト{ color:#000;*color:#888;_color:#fff;}
推奨される適切な値の省略形 「推奨される適切な」というのは、省略形には常に一連の値が含まれており、特定の値を設定したくない場合がありますが、それが問題を引き起こすためです。その場合は、省略する必要はありません。代わりに、この時点では別々に書いてください。 もちろん、すべてを省略できる場合は、必ず省略してください。その最大の利点は、バイト数が節約され、メンテナンスが容易になり、読みやすくなることです。 省略方法についてはCSSマニュアルを参照してください。 セレクターの順序 次の順序を考慮してください: 大きいものから小さいものへ (セレクターの範囲に基づく) 低いものから高いものへ (レベルに基づく) 最初から最後まで (構造上の順序に従う) ) 父から息子へ (構造的なネストの影響を受ける) 以下は簡単なデモンストレーションです:
1
2
3
4
5
6
7
8
9
10
11
12
13
| /* 大きいものから小さいものまで */
.m-list p{margin: 0;padding :0;}
.m-list p. part{margin:1px;padding:1px;}
/* 低いものから高いものまで */
.m-logo a{color:#f00;}
. m-logo a:hover{color:#fff; }
/* 最初から最後まで */
.g-hd{高さ:60px;}
.g-bd{高さ:60px;}
g-ft{高さ:60px;}
/ * 父から息子へ */
.m-list{width:300px;}
.m-list .itm{float:left;}
| セレクター レベル a = インライン スタイル スタイル。 b = ID セレクターの数。 c = クラス、疑似クラス、属性セレクターの数。 d = 型セレクターと疑似要素セレクターの数。
セレクター | グレード(a,b,c,d)
|
style=”” | 1,0,0,0
|
#ラッパー #コンテンツ {} | 0,2,0,0
|
#content .dateposted {} | 0,1,1,0
|
div#content {}
| 0,1,0,1
|
#content p {} | 0,1,0,1
|
#content {} | 0,1 、0 ,0
|
p.comment .dateposted {} | 0,0,2,1
|
div.comment p {} | 0,0 ,2 |
.comment p {} | 0,0,1,1
|
p.comment {} | 0,0,1,1
|
.コメント{} | 0,0,1,0 |
divp{} | 0,0,0,2 |
p{} 0、 0,0,1 | CSS 仕様 - 最適化ソリューション | 値の省略形 値を省略すると、CSS ファイルのサイズが削減され、可読性と保守性が向上します。 ただし、すべての値を省略する必要があるわけではありません。属性の値が省略されると、常にすべての項目が設定され、値に一部の項目を設定したくない場合もあります。 1
2
3
4
5
6
7
/* たとえば、次のスタイルを使用して、固定幅のコンテナを水平方向に中央揃えにします。左右だけです
| * そして上下はこのスタイルが気にするものではありません (設定されている場合、このコンテナ上の他のスタイルの使用に影響します)、
* したがって、現時点では略語は必要ありません */
.f-mgha{margin-left:auto;margin-right:auto;}
/* たとえば、以下のモジュールのスタイル設定では、実際にはパディングのすべての項目を設定する必要がありますが、 */ .m-link{padding:6px 12px;}
一般的に使用される省略方法については、コード形式を参照してください。 | パフォーマンスを消費する属性を避ける 以下にリストされている属性は、レンダリング パフォーマンスの問題を引き起こす可能性があります。しかし、時にはニーズがすべてを上回ることもあります... 12
3
4
/*expression */
| .class{width:expression(this.width>100?'100px) ' :'auto');}
/* フィルター */
.class{filter:alpha(opacity=50);}
セレクターのマージ つまり、CSS セレクターの組み合わせにより、一度に複数のセレクターを定義でき、多くのバイトと貴重な時間を節約できます。 通常、定義を統一するために、同じ定義を持つ、またはほとんど同じ属性値を持つ一連のセレクター (関連しているため実際には同じ) を (カンマを使用して) グループ化します。 1 2 3 4 5 6 7 8 9 10
|
/* 以下はレイアウトクラスに対して一律に行われますセレクター フローティング操作をクリアするには*/ .g-hd:after,.g-bd:after,.g-ft:after{ 表示 : ブロック ; 表示 : 非表示 ; コンテンツ : 0; " ;} .g-hd,.g-bd,.g-ft{zoom : 1; } /* 通常、背景は常に多くのバイトを占有するため、通常の状況では、一律に次のように呼び出します。 this* / .m-logo,.m-help ,.m-list li,.u-tab li,.u-tab li a{ 背景 : url (../images/sprite.png) no-repeat 9999px 9999px ;} .m-logo{background-position :0 0; } /* 以下は、実際に多くの要素がリンクまたは関連しているため、組み合わせて記述する方法を使用します。理解と変更を容易にすることができます*/ .u-tab li,.u-tab li a{ 表示 : インライン ; フロート : 左 ; 高さ : 30px ; .u-tab li{ margin :0 3px ; } .u-tab li a{ パディング :0 6px ;} |
画像自体の最適化: 背景画像の最適化と結合 画質の要件と画像ファイルのサイズによって、使用する画像の形式が決まります。より良い画質を実現するには、より小さい画像ファイルを使用します。 画像がカラフルすぎて透明度が必要ない場合は、jpg 形式を使用してより高い品質で保存することをお勧めします。 画像がカラフルすぎて、透明度や半透明の要件、またはシャドウ効果がある場合は、png24 形式を使用し、IE6 で png8 劣化を実行することをお勧めします (または最後の手段としてフィルターを使用します)。 写真があまりカラフルでない場合は、透明度の要件があるかどうかに関係なく、ほとんどの場合、この形式を使用することをお勧めします。 画像にアニメーションがある場合、GIF形式のみ使用できます。 ツールを使用して画像を再圧縮することもできますが、色と透明度が影響を受けないことが前提条件となります。 個々のアイコンの間には隙間が必要です。隙間のサイズはコンテナのサイズと表示方法によって決まります。これの利点は、「耐障害性」が考慮され、イメージの保守性が向上することです。 アイコンの配置もコンテナのサイズと表示方法によって決まります。配置方法は、横配置(コンテナの幅制限あり)、縦配置(コンテナの高さ制限あり)、斜め配置(コンテナの幅と高さ制限なし)、左配置(コンテナの背景が左側)のタイプに分かれます。 、右配置(コンテナの背景が左側)右)、水平中央配置(コンテナの背景が水平中央)、垂直中央配置(コンテナの背景が垂直中央)。 結合された画像のサイズは 50K を超えてはならず、推奨サイズは 20K ~ 50K です。 複数の変更を行った後でも画像の品質を確保するには、元の PSD 画像のコピーを保存し、PSD で変更して追加し、最後に png にエクスポートしてください。 複数の画像の結合: カテゴリの結合: すべてのアイコンを 1 つの画像に結合することは、画像のサイズを制御することに加えて、次の方法にも注意する必要があります。 画像の配置に従って、同じ配置の画像を結合して、スタイルの制御を容易にします。 モジュールまたはコンポーネントに応じて、同じモジュールまたはコンポーネントに属する画像がマージされ、モジュールまたはコンポーネントのメンテナンスが容易になります。 画像サイズに応じて、同じまたは類似したサイズの写真を結合して、画像スペースを最大限に活用します。 画像の色に応じて、同じまたは類似した色の画像を結合して、結合された画像の色が濃すぎないようにし、色の歪みを防ぎます。 上記の方法を組み合わせます。 ハックの回避 回避のコストが高い場合、たとえば、大量の HTML を追加したり、より多くの CSS を記述する必要がある場合、利益が損失を上回ります。 豊富な実践経験は、これらの一般的な問題を理解し、さまざまなアイデアを使用して問題を回避するのに役立ちます。したがって、ここでは経験と思考方法が非常に重要です。 自分の能力に応じてハックの問題を解決してください。ハックを回避するために自信のない方法を使用することはお勧めしません。その方法自体にまだ発見されていない問題がある可能性があります。 CSS でできるなら JS を使わないでください CSS にもっと多くのことをさせて、JS の開発量を減らしてください。 CSS を使用してインタラクションや視覚的な変更を制御します。JS はクラス名を変更するだけで済みます。 CSS を使用して複数のノードのスタイルを一度に変更し、複数のレンダリングを回避し、レンダリング効率を向上させます。 製品が以前のバージョンのブラウザと互換性がない場合は、アニメーションの実装を CSS に任せることができます。 読みやすく修正しやすい 「CSS仕様」の要件をすべて満たしていれば、自然と読みやすく修正しやすい美しいCSSが書けるようになります。 もちろん、コードの形式と命名規則は比較的重要です。 Clear CSS module 命名規則の要件を満たしている場合、CSS モジュールが明確に表示されます。 「コメント」を使用して各モジュールを説明することは、大きな CSS ファイルの場合に特に重要です。 ファイル圧縮 CSS を適切に作成すると、ファイルの内容を損なうことなく CSS を圧縮できるあらゆる手段を試してください。コメントや冗長なスペースや改行を圧縮することができます。削除されました。 圧縮ツールの詳細については、「HTML/CSS ツール」セクションを参照してください。 その他のフォーマットの最適化 最適化方法については、コードフォーマットを参照してください。 CSS仕様 - ベストプラクティス ベストセレクター記述方法(モジュール)
1234567 8910 11121314151617181920 |
/* これはモジュールです */ .m-nav {}/ * モジュールコンテナ */.m-nav li,.m-nav a{}/* 共通性優先 組み合わせ最適化 */.m-nav li{}/* 後は個別性 セマンティックタグセレクター * /.m -nav a{}/* 構造順における最後の人格の共通点 */.m-nav a.a1{}/* 最後の人格の個性 */.m-nav a2{} /* 人格後の人格 */.m-nav .z-crt a{}/* インタラクション状態の変化 */.m-nav .z-crt a.a1{}
.m-nav .z-crt a.a2{}
.m-nav .btn{}/* 典型的な子孫セレクター */
.m-nav .btn-1{}/* 典型的な子孫セレクター 拡張子 * /
.m-nav .btn-dis{}/* 典型的な子孫セレクター拡張 (ステータス) */
.m-nav .btn.z-dis{}/* 機能は上記と同じです。選択してください2 つのうち 1 つ (IE6 と互換性がない場合に使用します) */
.m-nav .m-sch{}/* 他の内部モジュールの位置を制御します */
.m-nav .u-sel{ }/* 他の内部コンポーネントを制御します 場所 */
.m-nav-1{}/* モジュール拡張子 */
.m-nav-1 li{}
.m-nav-dis{}/* モジュール拡張子 (ステータス) */ .m-nav.z-dis{}/* 機能は上記と同じです。どちらかを選択してください(IE6 に対応していない場合は、それを使用してください) */
|
レイアウト (.g-) ... | doc
| head | head | HD
| ボディ | ボディ | bd
| テール | フット | ft
| メインバー | メイン | mn
| メインコラム サブ-コンテナ | mainc | mnc
| サイドバー
| サイド | sd
| サイド手すりコンテナ | sidec | sdc
| ボックスコンテナ | ラップ/ボックス | ラップ/ボックス
|
| モジュール (.m-)、要素 (.u -)
|
セマンティクス | 命名 | 略語
|
ナビゲーション
nav
| nav
| サブナビゲーション | サブナビゲーション | ナビ
| パン粉 | パン粉 | crm
| メニュー | メニュー | メニュー
| オプションカード | タブ | タブ
| タイトルエリア | ヘッド/タイトル | hd/tt
| コンテンツエリア | 本文/コンテンツ
| BD/CT
| リスト | リスト | lst
| フォーム | テーブル | tb
| フォーム | フォーム | fm
| ホットスポット
| ホット | ホット
| ランキング | トップ | トップ
ログイン |
ログイン |
ログ |
ロゴ |
ロゴ |
ロゴ |
広告 | 広告 |
広告 |
検索 |
検索 |
sch |
スライドショー |
スライド |
sld |
ヒント | ヒント | ヒント |
ヘルプ |
ヘルプ |
ヘルプ | ニュース |
ニュース |
ニュース | ダウンロード |
ダウンロード |
dld |
登録 |
登録 |
登録 |
投票 |
投票 |
投票 |
著作権 |
著作権 |
cprt |
結果 |
結果 |
最初 |
タイトル |
タイトル |
tt |
ボタン |
ボタン |
ボタン | 入力 |
入力 |
ipt | ... フロートクリア
両方クリア | cb
|
floatleft |
floatleft |
fl
|
右にフロート |
右にフロート |
fr
|
インラインブロックレベル |
インラインブロック |
ib
|
テキスト中央揃え |
textaligncenter |
tac
|
テキスト右 |
textalignright |
tar
|
左側のテキスト |
textalignleft |
tal
|
垂直中央 |
verticalalignmiddle |
vam
|
オーバーフロー非表示 |
オーバーフロー非表示 |
ああ
|
完全に消える |
表示なし |
dn
|
フォントサイズ |
フォントサイズ |
fs |
フォントウェイト |
フォントウェイト |
fw ...
| フォントカラー | フォントカラー | fc
| 背景 | 背景 | bg
背景色 | 背景色 bgc |
| 背景画像 | 背景画像 bgi |
| 背景の位置決め
| 背景位置
bgp |
| ボーダーカラー | ボーダーカラー
bdc | |
| ステータス (.z-)
| セマンティクス | 名前 | 略語
| 選択 | 選択 | 選択
現在 |
現在 |
crt |
ショー 表示 |
表示
|
非表示 | 非表示 |
非表示
| オープン
| オープン |
オープン
| 閉じる | 閉じる |
閉じる
| エラー | エラー |
エラー
| 利用不可 | 無効 |
dis
|
CSS 仕様 - 典型的なエラー NEC 仕様に準拠していないセレクターの使用 .class{} カテゴリのないスタイルをメイン セレクターとして使用しないでください。このようなセレクターは、子孫セレクターとしてのみ使用できます。 m-xxx .class{} など。 .m-xxx div{} セマンティクスのないタグをセレクターとして使用しないでください。現在または将来、セレクターが他の同様のタグを汚染しないことが確実でない限り、大規模な汚染が発生します。 。 .g-xxx .class{} この子孫セレクターは内部の要素を汚染する可能性があるため、ページ レイアウトで子孫セレクターを使用しないでください。 .g-xxx .m-yyy{}.g-xxx .u-yyy{} モジュールやコンポーネントの制御にレイアウトを使用しないでください。モジュールとコンポーネントはレイアウトから分離する必要があります。
.m-xxx .f-xxx{}.m-xxx .s-xxx{} モジュールまたは他のクラス セレクターを通じて、すでに定義されている関数クラス セレクターおよびスキン クラスを再定義、変更、または追加しないでください。 .m-xxx .class .class .class .class{} セレクターを冗長に記述しないでください。これにより、ファイル サイズが増加し、セレクターが狭い範囲に限定され、ツリー構造が複雑になりすぎます。厳密な適用範囲は制限されているため、3 ~ 4 文字以内で記述することをお勧めします。 セレクターは構造のネスト順序を完全に反映する必要はありません。逆に、できるだけ単純である必要があります。 .m-xxx .m-yyy .zzz{} コントロールをオーバーライドしないでください。.zzz が .m-yyy の子孫セレクターである場合、.m-yyy 以外のセレクターは制御できません。または変更されました。 現時点では、.m-yyy-1 .zzz{} のように、.m-yyy の拡張子を使用して .zzz を変更できます。 拡張クラスの使用エラー 拡張クラスは、その基本クラスとして同じノードで同時に使用する必要があります。 エラー: class="g-xxx g-yyy-1" class="m-xxx-1" class="u-xxx u-yyy-1" class="xxx-yyy"。 正解: class="g-xxx g-xxx-1" class="m-xxx m-xxx-1" class="u-yyy u-yyy-1" class="xxx xxx-yyy"。
|
|