id属性とclass属性の違い

id属性とclass属性の違い

 「id属性」と「class属性」は、CSSで装飾を施すために、HTMLタグ内に以下のように属性を加えます。

小見出し

←id識別の使用例

段落

←class分類の使用例

 「id」とはページ内の要素に対して、特定の識別名を与えることです。ひとつのページ内に同一のid名を繰り返し使うことはできません。

 「class」とは、分類を意味します。ひとつのページ内で同じ装飾を施す場合にまとめて指定することを目的にしています。

 この2つの違いをよく理解せずに使っている場合が多くあり、一般に公開されているWebサイトでもよく見かけます。

 この「id属性」と「class属性」の使い分けに多い間違いは、idをページ内に繰り返し使っているケースです。例えば、ページ内リンクを設定する場合に、XHTMLの仕様からはname属性ではなく、id属性を使うようになりました。この場合、id名を複数つけていると、目的の個所まで移動することができなくなります。

 また、これはAjaxでよく使われているDOM Scriptingの場合にも不都合が発生する原因となります。DOM Scriptingでは、外部のjs(JavaScript)ファイルから、htmlのid名を特定し、連携することがあります。外部jsファイルから、html内のidを指定する場合には、getElementById()で指定を行いますが、ここでも同じid名が複数存在すると、エラーかもしくは動作しない原因となるでしょう。

 「id属性」と「class属性」の意味の違いを理解していない場合、これら2つを同じように使ってしまうケースが多いのですが、本来の目的が違っている点、そして関連する動作にバグが発生する点に注意しましょう。

マージンとパディングの違い

 CSSのプロパティ「マージン(margin)」と「パディング(padding)」は、それぞれ「間隔」を取ることができる属性です。「ボーダー(border)」と呼ばれるけい線を区切りとすると、外側の間隔がマージン、内側の間隔がパディングとなります(図2-1)。

 ボーダーを使うと、2つの間隔を同時に表示させたり、けい線の内外で使い分けるケースがあるのですが、ボーダーを使わなければ、どちらで指定しても同じなのでしょうか。

 これも意外に知られていない点ですが、マージンには「相殺」という概念があり、この点で異なっています。例えば、図2-2のように上下重なり合うボックスがお互いにpadding-bottom:10px(上ボックス)、padding-top:20px(下ボックス)と指示し合うと、お互いの上下間隔は足して30pxになります。

 ところがこれをマージンで行うと、margin-bottom:10px(上ボックス)、margin-top:20px(下ボックス)と指示し合いお互いの上下間隔では、絶対値の大きい方が採用され20pxになります。

 これを理解せずにボックス間の間隔を数値で制御していくと、意図しない間隔値によってレイアウトが崩れる可能性があるので、今後注意して使い分けましょう。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30