Warning: Undefined array key 0 in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/functions.php on line 406

Warning: Attempt to read property "parent" on null in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/functions.php on line 407

Warning: Attempt to read property "term_id" on null in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/functions.php on line 413

Warning: Attempt to read property "cat_name" on null in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/functions.php on line 413

idとclassの使い分け


Warning: Undefined variable $pre in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/functions.php on line 517
CSS

idとclassの違い

スタイルを適用させる範囲の指定によくidやclassを使います。 しかしidとclassのどちらを使うのが適正かは中々難しい問題です。 まずは両者の違いから考えてみましょう。

idはページに一つ、classはいくつでも可

idはページ内に一つしか記述できません。
対してclassはいくつでも記述することができます。

ただしページに1つしか出てこないからといって、idを使わなければいけない訳ではありません。 idの使用に制約があるだけです。

idとclassでスタイルが競合した場合、idが優先される

以下のスタイルの競合を例に見てみましょう。

lt;p id="red" class="blue">idとclass競合時の文字色</p>

red{color:red;}
.blue{color:blue;}

実行結果

id-class-difference01

文字色をidは赤、クラスは青を指定して競合した結果、idが優先されて赤くなりました。idはclassよりも強いのです。

idに対してページ内ジャンプができる

idに対してリンクを貼れば、該当のid位置にジャンプすることができます。

lt;a name="#アンカー名">idへジャンプ</a> 
<!-- ~略~ -->

これを利用してページ先頭にジャンプ機能を設置する手法がよく使われています。

idを使うべきところ

まず大前提として、classの使用に制約はありませんがidにはあります。 率直に言ってしまうと、idを全く使わずにclassで記述してしまっても問題ありませんし、そうすることも多いです。 なので使い分けをどうするか考えるより、どこにidを使うべきかを考えましょう。

idを使う箇所は「一意にする必要がある」もしくは「一意にした方がいい」箇所です。

ページ内ジャンプ機能を付けたい場合

ページ内ジャンプ機能を使う場合、classでは実現できないのでidを使います。

一意に設定できる箇所に使う

ヘッダー、コンテンツ、サイドバー、フッターなどのページセクションは基本的にページ内に一つしかありません。 こういったものはidを振ってやった方が分かりやすくなります。

共通部をクラスでまとめ、idでスタイルを上書きする

idがclassよりも優先されるCSSの仕様を利用した手法です。

ウェブページはページによってある程度レイアウトに幅がありますが、しかし似通っている部分が多いです。 基準スタイルをclassで書いて、各ページの特徴となる部分はidで書いてやればCSSを圧縮することができます。

セレクタのマッチング処理はidの方が早い

jQueryなどでセレクタのマッチング処理を行う場合、idを指定した方が速度が速くなります。 これはid指定であればページ内で見つかればそこで処理が終わるのに対し、class指定だと最後まで走査しなければならないためです。

HTMLとCSSのみで構築する場合はあまり関係ありませんが、これも頭の隅に入れておきましょう。


Warning: Undefined variable $category in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/content.php on line 79

Warning: Attempt to read property "name" on null in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/content.php on line 79

の記事

eyecatch

ウェブ特有のライティング作法「ウェブライティング」入門

eyecatch

要素と属性

eyecatch

サイトを毎日更新する意味はシステム的にはない

eyecatch

エスケープシーケンス

eyecatch

SEO(検索エンジン最適化)よりUO(ユーザー最適化)を心がける

eyecatch

ブログ初心者におくる「ライティング入門」


Warning: Undefined variable $category in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/content.php on line 84

Warning: Attempt to read property "count" on null in /home/yatsuba/yatsuba.com/public_html/wp-content/themes/amaru/content.php on line 84
HOME