• ベストアンサー

スタイルシートでidとクラスの定義について

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

質問者が選んだベストアンサー

  • ベストアンサー
  • 0wl
  • ベストアンサー率43% (10/23)
回答No.2

だいぶ勘違いが入っています。 idはこの場合、horiewebという個人名です。このサービスでは一意です。 対して classは質問者・回答者という分類です。大勢おられます。1回しか出てこなくても、classがふさわしい場合と、idがふさわしい場合があります。このページで質問者は1回しか出てきませんが分類としての質問者ですからclassにすべきで個人としてはidにすべきです。 idとclassを比べるとidの方が限定的になります。スタイルシートでは詳細度が高いといいます。はぁ?だと思います。 詳細度が高いということは、違う指定をしたときに、id指定の方が優先されるということです。idで紫を指定していれば、後からclassで赤を指定しても紫で表示されます。 また、名前ですから、アンカー(リンクなど)にも使えます。ページのそこのidを指定してリンクを貼れるのです(一意だから特定できる)。同じページに2つ同じidがあったら、どうなるのでしょう?やってみてください。 ちゃんと理解して使い分けした方がいいですよ。とはいえ、あまり、上手な説明でないですね。2つリンクを貼っておきます。 class と id の違いとは? http://deztec.sakura.ne.jp/x/01/tips/page/p0045.html カスケード-詳細度 http://homepage2.nifty.com/Shouji/pc/css/ss-cascade.html#specificity

horieweb
質問者

お礼

回答ありがとうございました。 実践してみます。 idは一つ指定するとHTML上で定義した全てに反映されてしまうために1度しか使用できないのですね! classは同じサイト内で何回同じ名前で指定してもそのページ単位で使用できるという事なんでしょうね。 なんとなくわかってきました。 今後もよろしくお願い致します。

その他の回答 (1)

  • ulmo
  • ベストアンサー率43% (197/454)
回答No.1

ちょっと勘違いされてますね。 「ひとつの文書内に同じIDが2つ以上存在してはならない」んです。 つまり id="header" が2つ以上あってはならないのであって、 その同じ文書に id="footer" があっても何の問題もないです。 id="" がひとつしか使えない、という事ではありません。 また、仮に2つ以上の同一IDがあっても、 現在の主要なブラウザは問題なく表示してくれます。 同一文書内リンク、たとえば index.html#header のような リンクが正常に機能しない事を除けば、実際上はあまり問題ないです。 無論、正しくはないので、バリデータにかけるとエラーが出ますが。

horieweb
質問者

お礼

有難うございました。 ずっとわかりませんでしたがようやくわかりました。(感謝!!) これからも宜しくお願いします。

関連するQ&A

  • 最近、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
  • スタイルシートのclearfixの定義について

    スタイルシートのclearfixの定義はhtml上では定義していないのにどうして .clearfix:afterと定義するのでしょうか? あと <div class="clearfix" id="mainblock"> <div id="mainarea" class="clearfix"> などのclassとidを両方定義しているのはどういった意味でどういう場合行うのでしょうか? 教えて下さい。

  • スタイルシートの定義について。。。

    スタイルシートの、IDとClassの違いがわかりません。。。 教えてください!!

  • スタイルシートレイアウトで・・

    初めまして。よろしくお願い致します。 先日、知人のHPをテーブルレイアウトからスタイルシートレイアウトで作り直しました。すると、ブラウザでは問題なく見れるのですが、 ホームページ作成ソフトの画面で見ると、大きくレイアウトが崩れています。文字の大きさなどはスタイルシートで設定したとおりです。 ちなみに、元々のHP(テーブルレイアウト)はドリームウィーバー4日本語版というもので作られており、私が作成したものではありません。それを私が、ホームページビルダー10を使って、スタイルシートレイアウトに書き直しました。 いろんなソフトで確認してみると『ビルダー10』のページ編集の画面では、レイアウトの崩れはありません。『ビルダー9』のページ編集の画面でみると右と左に回りこみを指定したのに、文字などが重なってしまいます。 また、『ドリームウィーバー4日本語版』のデザインビュー画面だと文字の大きさ以外のスタイルシートは、全く無視され大幅に崩れてしまって、回り込みなどは全く無視され、下へ下へ書き込んだHTMLソースどおりに表示されます。 『ドーリームウィーバーMX2004』だと左に回り込みを指定した部分だけが崩れて、その部分が左の最下部(フッターよりも下)になっています。 ソフトが違うから崩れるのでしょうか?それともスタイルシートの設定がおかしいのでしょうか?何から修正すればいいのかわかりません。 当方、HP歴はビルダーで1年ほどほぼ独学の初心者です。 うまく説明できなくて、申し訳ありませんがよろしくお願いします。

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

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

  • HTMLとスタイルシート

    SE社のホームページ辞典には、 HTMLは論理構造、スタイルシートはデザインを担当する というようなことが書かれていましたが、 HTMLとスタイルシートは全くの別物ということでしょうか? たとえば教えて!gooで、 「スタイルシートのIDとかCLASSって何ですか」という質問を このカテゴリーでやったら、 「カテ違いですよ」と言われるでしょうか?

    • ベストアンサー
    • HTML
  • スタイルシートで、id属性の中にclass指定をすることはできますか?

    CSSで、id属性の中にclass指定をすることはできますか? 現状は、divタグを使って、ヘッダー、メイン、フッターと分けているのですが、メインのところで #main.hoge{ #main .hoge{ とも動きませんでした。なんとなく間違っている指定なのかなとはおもうのですが、id属性で細かく分けた中をclassで指定したい場合、単に.hogeで十分機能するのですが、id属性の中をclassで指定したい場合、皆様はどのようにされてみえるのでしょうか。

    • ベストアンサー
    • HTML
  • スタイルシートについてです

    自分のホームページにスタイルシートで画像やテキストを位置指定してレイアウトを作っていきたいんですが、この方法で作ったページを見るためにはブラウザなどの環境が整った人でないと見れないんでしょうか?教えてください。

  • スタイルシートで枠を作る方法

    今まではHTMLのテーブルタグでページをレイアウトしていたのですが それと同じデザインをスタイルシートでやりたいのです。 ページのデザインは、ページの真ん中に大きな枠を作って その中に本文を書き、枠の外は背景画像という感じです。 これをスタイルシートで表す時、スタイルシートファイルには どう記入すればよいのでしょうか。 文が分かり辛くてすみませんが、教えてください。

    • ベストアンサー
    • CSS
  • スタイルシートについて

    スタイルシートには、 タグのスタイル classのスタイル IDのスタイル とありますが、これを全部同時に使ったとしたら、優先の順番はどうなるんでしょうか? スタイルシートは最近入門したばかりでわからないことが多いので、もし意味がわからなかったら言ってください。

    • ベストアンサー
    • HTML

専門家に質問してみよう