• 締切済み

複数ページでのidとclassの使い分け

. よくある、id と class の使い分けについてですが、複数ページに共通して存在するようなレイアウトに対する考え方についてです。 今まで、一つのページ内に一つだけ存在するものに対しては id を割り振り、一つのページに共通して存在するものに対してのみ class を割り振ってきました。ですので、class より id をベースにコーディングしていたという感じです。 ただ、最近、ページが増えるたびにどうもソースがなんとなく見にくく、メンテナンスに不効率な感じがしてます。特に、複数ページに共通したレイアウトがある場合です。 一つのページ内に共通して存在するものに対してのみ class を割り振り、その他は全てidを割り振るという考え方を貫くと、同一ページには同じレイアウトは存在しないが他の複数のページには同じレイアウトが存在しているような場合にも、基本的にその複数ページのどのページにもその共通したレイアウトに関して共通した id を割り振ることになってしまいます。 しかし、メンテナンス性を考えると、このような場合も基本的に class を割り振り、複数ページの内のあるページだけ少しデザインを変えるようなときだけ id を割り振る、といった使い方のほうがソースが見やすくすっきりするような感じがします。 ですので、最初から claas を割り振ることをベースとして、全ページを通じてそのレイアウトが固有のものになりそうな場合にだけ id にする、または、後から固有のものになった部分にだけclassに加えて後からidも付与する、というようなシンプルなコーディングに転換したいと考えてます。 しかし、この方法ですと、他のページには同じレイアウトが存在するとはいえ同一ページにはそのレイアウトが1つだけしか存在しないにもかかわらずidでなくclassを付与してしまう場面が増大してしまい、原則論から考えると若干気にはなってしまいます。(ひょっとすると私の原則論のとらえ方がそもそも間違っているのかもしれません) このあたり、どう考えたらよろしいでしょうか? 何かかいろいろなご意見や考え方を頂けますとうれしいです。 .

  • HTML
  • 回答数1
  • ありがとう数1

みんなの回答

  • dezimac
  • ベストアンサー率56% (2365/4208)
回答No.1

IDは、全ページで絶対に共通する要素設定するといいです。 単純な例だと ・見出し領域: <div id="header">~</div> ・本文領域: <div id="main">~</div> ・下部領域: <div id="footer">~</div> こうすると、CSSファイルを編集するだけで全ページの共通レイアウトを一気に変更できます。 cssも #hearder p.class{~} とかすると管理しやすいでしょう。 また、装飾とかよりも、ページ内リンクを作るときにも役立ちます。 リンクを貼る際には<a href="#header"見出しへ</a> IDとClassは重複して指定もできるので、 <div id="main" class="hoge"> とかも可能。 原則として、IDの内容が優先されます。 IDはページ内リンク用と割り切って装飾は一切しないで(=cssの記述は無し)、classでだけで装飾する方法もあります。 やり方なんて人それぞれで、10人いれば10通りの記述がありますから、自分で管理しやすいように試行錯誤してみて下さい。 https://tech-camp.in/note/technology/17542/#id https://allabout.co.jp/gm/gc/23897/

参考URL:
https://allabout.co.jp/gm/gc/23897/
milano-com
質問者

お礼

丁寧にありがとうございます。 ネット上でもいろんな意見が見られ、あらためて最近迷い始めてしまっていたのですが、仕様書・メンテナンス性・idやclassの言葉としての本来の意味・個々のページデザインの状況・好み、などなど、もう少し考えて見ます。 特に複数ページに存在して似たようなデザインになっているtable(会社情報と特定商取引法表示など)やブログ記事の中身のデザインなどについてです。 とても参考になり感謝しております。

関連するQ&A

  • 複数ページにまたがるidの使用について

    . よく、id は1つのページで1つだけと言われますが、複数のページに同一のレイアウトでデザインする場合に、その複数のページに同じidがまたがっていることは問題ありませんでしょうか? .

    • ベストアンサー
    • HTML
  • IDとclassとSEOについて

    xhtml4.01のclassとidってSEOに影響するんでしょうか? 僕はclassを使うのが好きなんですが、xhtmlの解説本を読むと大抵ヘッダーやフッター等のレイアウトにはidを使っています。 メンテナンス性を考えてclassを使うのですが、最近SEOにidかclassかで関係あるのかと考えるようになりました。関係ないだろうと思いますが、ちゃんとしたプロの意見を聞きたいです。 よろしくお願いします。

    • 締切済み
    • SEO
  • cssのidとclassの違いについて

    cssのidとclassの違いについて ホームページ作成でcssを指定するとき、同一ページ内に1つしか指定しない場合はidを使用し、同一ページ内に複数指定したい場合はclassを指定しているのですが、使い方はあってるのでしょうか? 独学なゆえ間違った使い方をしているのかなぁと思い質問してみました。 もし間違っていたら正しい使い方を教えてください。またidとclassの意味の違いも一緒に教えていただければうれしいです。

    • ベストアンサー
    • HTML
  • 最近、HTMLのヘッダーをIDで定義(id="header")しているサイトが多いですが、なぜclassでなくIDで定義するのでしょうか?

    最近、CSSレイアウトを採用しているサイトの多くが、HTMLページのヘッダー部分やフッター部分をIDで定義(id="header"、id="footer")しています。 私は、IDというと、例えば身近には、住所や電話番号、免許書番号や銀行の口座番号等の、多くの場合は連番を用いた固有な値を使用するイメージがあります。 ところがHTMLでは、IDの値にheaderやfooter、さらにはwrapperやcontainer等の、通常ならIDの値として相応しくないような一般的な名詞が頻繁に使用されています。 classの値であれば、そのような一般的な名詞もうなづけますし(というよりclassに固有な値は逆に奇妙かも)、スタイルシートを適用するだけなら、classだけでも十分可能だと思いますが、なぜIDを使用するのでしょうか?とても不思議です。

    • ベストアンサー
    • HTML
  • CSSのid名class名の重複回避方法について

    今、複数ページがあるサイトを作ろうとしているのですが、 他の人が作成をする場合もあるので、 ヘッダ・フッタなど、共通部分に使っているcssの設定(idやclass名)と、 個々のページで設定するcssの設定が重複しないようにしたいと思っています。 もし、共通cssと個別cssに同じ#fontというid名が存在してしまったとして、 個別のページのcssファイルに↓の用に記述し #page01 #font{  color:#FFFFFF; } html内の、<div id="page01">~</div> の中に含まれるid="font"と定義した場合 共通のidに#font が存在していても大丈夫なのでしょうか? また、大丈夫な場合、idやclassを作るたびに #page01 #font #page01 .photo と#page01を頭に全部つけると分かりづらくなるな。。と思うのですが、 それを回避する方法はありますでしょうか? ほか、重複しないアイデアをご存知の方がいらっしゃいましたら ご教示いただければ幸いです。 どうぞよろしくお願いいたします!

    • ベストアンサー
    • CSS
  • class?id?

    ページ内に「What’s new」という言葉を使います。(一回しか使いません。) 一回のみなのでIDをと思ったのですがIDってその一箇所のみのレイアウトに使うイメージが・・・。 言葉や文章もIDって使うのですか? 知識があいまいなのでどなたかこういう場合どうすればいいか教えてください。

  • この場合はid?class?

    本日ウェブデザイン技能検定を受けたのですが、 後から調べてもどうしてもよく分からない問題があったので質問させていただきます。 Q.要素に固有の値を定義する属性として適切な物を選択しなさい A. 1.<p id="lead">文章</p> 2.<p src="lead">文章</p> 3.<p title="lead">文章</p> 4.<p class="lead">文章</p> 2と3は多分違うと思うので、1か4だと思ったのですがどちらも正解な気がしてなりません… idとclassの違いについて調べてみても、大抵「1つだけか複数かの違い」のように書かれていて このような問いで出されたらどちらが正しいのでしょうか? 教えていただければ幸いです。宜しくお願い致します。

    • ベストアンサー
    • HTML
  • divでレイアウトするときのidやclassの命名について

    divでレイアウトするときのidやclassの命名について 図のようなイメージ(デザイン)をもとにコーディングするとします。 太い赤線部分はデザインの一部でなく、divで囲んでコーディングをする、という意味です。 最も外側の赤線、つまりdivには既に #osusume と命名しました。 内包するdivについて、 あなたなら、どのようなid、class、命名にしますか? 例) #osusume{ } #osusume .divL { } #osusume .divL .div2L { } #osusume .divL .div2R { } #osusume .divR { } #osusume .divR .div2L { } #osusume .divR .div2R { } 意味不明でしたら加筆しますのでよろしくお願いします。

    • ベストアンサー
    • HTML
  • スタイルシートでidとクラスの定義について

    スタイルシートでidとクラスの違いについてですがidは、1ページ内で一度しか使えないので、ページのレイアウトとして使われることが多くclassは、1ページ内で何度も使用することが可能で、同じデザインを複数指定したい場合に使用される事はわかったのですが、1つのページで id="heder"と定義した場合、その同じページのフッターを定義する際id="footer"とはせずclass="footer"とするべきなのでしょうか? それと同じページ内でidを2度使用するとどうなるのでしょうか? 教えて下さい!!

  • idかclassか どっちが良いでしょうか?

    A.htmlページ <div> <ul><li>A</li><li>B</li><li>C</li></ul> </div> B.htmlページ <div> <ul><li>A</li><li>B</li><li>C</li></ul> </div> の様に各ページが同じHTMLで、各ページで別画像にする場合、 どの様なCSSで書いていますか? また、理想ですか? 何故そうしますか? ページ数=各画像数がこれより多い場合や管理面も含めてご回答をお願いします。 ======================== パターン1 <div class="nav" id="nav1"> <ul><li>A</li><li>B</li><li>C</li></ul> </div> /* 共通CSS */ .nav{height:200px; width:600px; background:no-repeat 50% 50%;} #nav1{background-image:url(~A.jpg);}/* A.html用 */ #nav2{background-image:url(~B.jpg);}/* B.html用 */ #nav3{background-image:url(~C.jpg);}/* C.html用 */ パターン2-1 <div id="nav1"> <ul><li>A</li><li>B</li><li>C</li></ul> </div> /* 共通CSS */ #nav1,#nav2,#nav3 {height:200px; width:600px; background:no-repeat 50% 50%;} #nav1{background-image:url(~A.jpg);}/* A.html用 */ #nav2{background-image:url(~B.jpg);}/* B.html用 */ #nav3{background-image:url(~C.jpg);}/* C.html用 */ パターン2-2 #nav1/* A.html用 */ {height:200px; width:600px; background:url(~A.jpg) no-repeat 50% 50%;} #nav2/* B.html用 */ {height:200px; width:600px; background:url(~B.jpg) no-repeat 50% 50%;} #nav3/* C.html用 */ {height:200px; width:600px; background:url(~C.jpg) no-repeat 50% 50%;}

    • ベストアンサー
    • CSS

専門家に質問してみよう