HTML IDとクラスの適切な命名規則を説明するための適切なリソースを知っている人はいますか?また、要素タイプのIDを接頭辞にするかどうか、つまりbtnやボタンなどを知っていますか?
クラスは複数形か単数形か? IDは一意であるため、IDは単数である必要がありますが、クラスはどうですか?
IDとクラスは名詞を使用するべきですよね?
私は既存のページに他のページを挿入するページを使用しています。部分的なページのようなものです...したがって... IDやクラスの前に名前が付いている人がいるかどうか疑問に思っていました..種類の名前空間や同様?
コメントや洞察は本当にありがたいです。
必要に応じてセレクタでこれを推測できるため、タイプのプレフィックスは付けません。
form#contact {
property: value;
}
あなたが説明した方法はハンガリー記法として知られており、あまり一般的ではありません。
あなたが言及したことのために、1つのdiv内に注入されたHTMLを配置し、1つのユニークなクラス/ IDを配置することができます。ホストページのCSSの他のルールではなくルールが有効になるように、CSSセレクターの詳細を調べます。 親ページ内の要素のスタイル設定に関する同様の質問への回答を参照してください。
選択した規則については、プロジェクトのニーズをターゲットとする要件を選択することをお勧めします。
つまり、プロジェクトは小さいですか、それとも巨大ですか?プロジェクトは再利用されるのですか、それとも何らかのテーマを処理する必要がありますか?開発者はCSS/HTMLに取り組んでいますか、それとも慣習に固執するのに十分な経験がありますか?などなど.
まず、この一般的な(良い?)プラクティスに気付いていない場合:IDをスタイリングフックとして使用しないようにするには、Classesのみを使用してください
なぜなら:
非常に少数のブロック(ページヘッダー、ページフッターなど)のみが、他の場所で再利用されないという事実を100%保証できます。
特異性を低く保ちたい場合、常にそれをオーバーライドする必要がある場合があります(追加のIDセレクターまたは!importantを使用せずに)
-
または_
を使用します。おそらく主観的な(開発者の意見)および使用するキーボード言語に応じて。キャメルケースは、私が信じているブラウザ互換性の問題のために取り残されていることに注意してください。<input type="button"></input>
を使用して作成したボタンがあり、<button></button>
を使用するように切り替えたい場合、一部のセレクターで要素タイプを使用した場合、面倒な/時間のかかるリファクタリング/テスト/ prod-bug-一方、要素のないセレクターを使用すると、スイッチは無限に簡単になります。 SMACCSには慣例にもありますbtn-bluetheme-create-accnt
またはaccordion-modrnlook-userlist
.module-name > .sub-module-name
vs .module-name .sub-module-name
を使用します。 )構造的な命名規則:要素のクラスを、それがどこにあるか、どのようにではなく、何であるかを説明する見えます。以下の例を参照してください。
.page-container
.page-wrap-header-n-content
.page-header
.branding-logo
.branding-tagline
.wrapper-search
.page-nav-main
.page-main-content
.page-secondary-content
.nav-supplementary
.page-footer
.site-info
プレゼンテーションの命名規則:要素の位置や外観を記述することで要素のクラスに名前を付けます。以下の例を参照してください。
.theme-ocean-blue
.theme-apricot-orange
.skin-red-tango
.skin-darkness
セマンティック命名規則:含まれるコンテンツを説明する名前。以下の例を参照してください。
.product-review
.notification
.language-switch
.currency-switch
.list-of-friends
.latest-status
BEMの命名規則:は「ブロック、要素、修飾子」を表します。構文は<module-name>__<sub-module-name>--<modifier-or-state>
などです。ブロックは「メイン」コンテナであり、あなたがそれを呼ぶものは何でもモジュール/コンポーネントの一種です。要素は、メインコンポーネント(ブロック)の子コンポーネントです。修飾子はある種の状態です。 特性:構文(dblアンダースコアとdblダッシュの使用)、および子要素には、最も近いコンポーネントの名前が含まれている必要があります。以下の例を参照してください。
.nav-primary
.nav-primary__list
.nav-primary__item
.nav-primary__link
.nav-primary__link--is-active
.grid
.grid__item
.grid__description
.grid__img-wrap
.grid__img
.global-footer
.global-footer__col
.global-footer__header
.global-footer__link
OCSS命名規則:はオブジェクト指向CSSを表します。ブランディング目的またはデザインの一貫性のためにスキンを使用します(bgカラー、ボーダーカラーなど)。構造スタイルを抽象化します。以下の抽象的な構造スタイルの例。 OOCSSの2つの主要な原則:構造とスキンを分離し、コンテナとコンテンツを分離します。
.global-width {
min-width: 780px; /* minimum width */
max-width: 1400px; /* maximum width */
margin: 0 auto; /* Centering using margin: auto */
position: relative; /* Relative positioning to create a positioning context for child elements */
padding-left: 20px;
padding-right: 20px;
overflow: hidden; /* Overflow set to "hidden" for clearfixing */
}
CSSスタイルガイドを共有する「トレンド」がありました。ニーズに合うと思われるものを選んで選択するために読むことができるいくつかのものがあります(命名規則だけでなく、これはあなたの質問の範囲外かもしれません):
現在、[〜#〜] bem [〜#〜]、semantic&structural命名規則&それは非常にうまく機能しています。
[〜#〜] bem [〜#〜]&semanticworking非常にうまくいっています(はい、私のクラスに.list-of-friends__single-friend
などの名前を付けます)。 BEMは、物事を特にシンプルにします。CSSにネストの狂気がなく、非常に冗長なコードです。
Structural命名規則は、Webサイトの裸の構造、またはWebサイトに複数の構造がある場合は各「テンプレート」でも歓迎されます。私の意見では、これは非常に一般的な要素にのみ使用されるべきなので、慎重に使用してください。
プレゼンテーション命名規則:本当に??感謝しますが、感謝しません。特別な場合(つまり、異なるテーマでページ全体をスキンする)に考慮することができます。
[〜#〜] ocss [〜#〜]命名規則:私は認めなければなりませんが、これをさらに検討する必要があります。さらに調査するために、以下のリソースにリンクを提供しました。
多くの人は、あなたがこのようなことができることに気づいていません:
.awesome {
/* rules for anything awesome */
}
div.awesome {
/* rules for only awesome divs */
}
button.awesome {
/* rules for any awesome buttons, but not awesome divs */
}
div.awesome h1 {
/* rules for H1s inside of any div.awesome */
}
div.awesome>button {
/* rules for immediate children buttons (not grandchildren+) of div.awesomes */
}