CSSでレイアウトを記述していく際に以前書いたCSSのプロパティが読み込まれ、デザインが思うようにいかないことがあります。
そんな中今日はHTML5で登場したsectionタグによって意図したCSSを読み込む方法を記述していきたいと思います。8月5日記事
目次
HTML
page1.html
略 <link rel="stylesheet" type="text/css" href="style.css"> 略 <body> <div id="contents"> <dl> <dt>なんちゃら</dt></dd>なんちゃら</dd> <dt>なんちゃら</dt></dd>なんちゃら</dd> </dl> </div>
page2.html
略 <link rel="stylesheet" type="text/css" href="style.css"><!--page1と同じCSSを読み込む--> 略 <body> <div id="contents"><!--以前の書いたddやdtとは別のデザインを読み込みたいのに・・・--> <dl> <dt>なんちゃら1</dt></dd>なんちゃら1</dd> <dt>なんちゃら1</dt></dd>なんちゃら1</dd> </dl> </div>
CSS
#contents dl dt{ background:#F00; } #contents dl dd{ background:#0F0; }
としてしまうと、page2はpage1のcontentsCSSの方にも読み込まれてしまいます。
対策は別CSSファイルを読み込むという方法がありますが、CSSファイルがいっぱいになりすぎてしまうと管理も大変になります。そこでせっかくHTML5でsectionタグが出てきたのですから、sectionタグを使ってCSSを管理していきたいと思います。
クラスやidを明示的に指定すればよいのですが、限定的にコードを読み込ませたい場合はsectionタグの中だよということをCSSで記述していきます。
HTML
page1.html
略 <link rel="stylesheet" type="text/css" href="style.css"> 略 <body> <div id="contents"> <section id="area1"> <dl> <dt>なんちゃら</dt></dd>なんちゃら</dd> <dt>なんちゃら</dt></dd>なんちゃら</dd> </dl> </section> </div>
page2.html
略 <link rel="stylesheet" type="text/css" href="style.css"> 略 <body> <div id="contents"> <section id="area2"> <dl> <dt>なんちゃら1</dt></dd>なんちゃら1</dd> <dt>なんちゃら1</dt></dd>なんちゃら1</dd> </dl> </section> </div> </body>
CSS
section#area1 dl dt{ background:#F00; } section#area1 dl dd{ background:#0F0; } section#area2 dl dt{ background:#00F; } section#area2 dl dd{ background:#FF0; }
こんな感じで書いていけば限定的なCSS読み込みが実現可能になってきます。
CSSを記述していく際にsectionタグを使って、構造を明確にし、さらにCSSを限定的に読み込ませる方法にしていけば、記述も楽になってくると思います。
以上