こんにちは。
html5を勉強してサイトを作っている者です。
勉強のためにそれなりの数のサイトのソースを拝見しているのですが、私の考えに合ったもの、考えと違ったものがあります。
私の考え・作りたいもの:-----------------------
<header>
~
<header>
<div class="wrapper">
<div>の3カラム
</div><!-- wrapperの終わり -->
<footer>
~
</footer>
------------------------------
よく見かけるもの
<div class="wrapper">
<header>
~
</header>
<div>の3カラム
<footer>
~
</footer>
</div><!-- wrapperの終わり -->
私のやりたい事は邪道でしょうか?ご意見頂ければと思います。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
いずれも正確には正しくありません。
HTML5では、インタラクティブな要素や属性--<video><canvas>--と共に、いやそれ以上にセマンティックなHTMLを目指しています。それはWebを巨大なデータベースと考えるとき、そのHTML文書の中で、どれがヘッダで、どれが本文で、どれがフッタで、どれが本文と関係ない記事かを検索エンジンを含め、わかるようにマークアップするということです。
DIVに関しても、
【引用】____________ここから
Authors are strongly encouraged to view the div element as an element of last resort, for when no other element is suitable. Use of more appropriate elements instead of the div element leads to better accessibility for readers and easier maintainability for authors.
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.5 Grouping content — HTML5( http://www.w3.org/TR/2012/CR-html5-20121217/grou … )]より
すなわち『著者は、他に適切な要素がないときの最後の手段の手段としてdiv要素を使用することが、強く奨励される。div要素より適切な要素を使用することで、読者のアクセシビリティと、著者の保守が容易になることが知られている』
これはDIVは、「原則使用しない、本当により適切な要素がないか見直せ!!」ということですね。
ですので、
<body>
<header>
文書のヘッダ
</header>
<section><!--
<h2>本文見出し</h2>
<section>
<h3>項目見出し</h3>
・・記事・・
</section>
<section>
<h3>項目見出し</h3>
・・記事・・
</section>
<nav id="contentsTable">
・・・目次・・
</div>
<aside>
本文とは関係ない記事
</aside>
</section>
<footer>
フッタ
</footer>
</body>
となるべきでしょう。
section要素は、セクショニング・コンテンツのひとつで、これは文書のアウトラインを構成しうるときにのみ称されます。目次を自動生成すると考えると良いでしょう。
sectionの階層によって
section 編
section 章
section 節
section 項
となるような場合ということです。
本文と関係ないものは、<aside>---目次を作らない--や<figure>--他から参照される注釈・挿絵的なもの、<article>--自身にheader,section,footerを持ちうる完結した記事、他の記事の要約とか--を使用します。
wrapperとして必要なのでしたら、それが記事全体を囲むものでしたら
<body>
<article>
<header></header>
<section></section>
<footer></footer>
</article>
</body>
でしょうし、本文中にブログ記事などを持ってくるなら
・・・前略・・・・
<section>
<h3>見出し</h3>
・・・記事・・
<article>
<header>ヘッダ</header>
<section></section>
<footer></footer>
</article>
</section>
・・・・後略・・・・
でしょう。
></header>
><div class="wrapper">
><div>の3カラム
></div>
></footer>
は、色々な意味で、おかしいです。上記のDIVの使用法に加えて
【引用】____________ここから
The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.5 Grouping content — HTML5( http://www.w3.org/TR/2012/CR-html5-20121217/grou … )]より
『div要素は、まったく特別な意味を持ちません。これを用いてこれは、連続した要素をグループ化することで共通のセマンティクスをマークアップします。lang、属性とtitle属性(およびグローバル属性)を使用することができます。』--wrapperはセマンティクではありません。この場合は<section>を使用すべきです。
(参考)
実はDIVの使い方はHTML4.01でも『id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』となっていました。それで考えてもwrapperというclass名はおかしい。
・HTML5の『新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/h … )』
⇒HTML5( http://www.w3.org/TR/html5/ )
よく見かけるからと言って正しいわけじゃありません。wrapperとか、leftMenueとか腐るほど見かけますが(^^)
上記で上げたサンプル、誰が見てもどこがheaderでどこが本文で、それが何階層かも一目瞭然でしょう。一番楽になるのは自分自身です。
ちなみに、3カラムで表示させるスタイルシートを書くと
body>header,body>section,body>footer{margin:0 auto;max-width:800px;}
section{position:relative;min-height:300px;}
section section{margin:0 200px;min-height:0;}
section nav,section aside{width:200px;position:absolute;top:0;font-size:0.9em;}
section nav{left:0;}
section aside{right:0;}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
携帯サイト、ナノでのタグ編集...
-
IEで表示されてしまう余白をな...
-
オシャレな区切り線はありませ...
-
div要素が重なってします
-
開始タグと終了タグについて
-
<div id="container">の使いか...
-
1時間30分を簡単に表したいで...
-
HTMLのJIS規格について
-
min-heightとheightの違いについて
-
ヘッダーとフッターだけ背景を...
-
グリッドレイアウトで"auto-fit...
-
Macで画像の切り抜きできないの?
-
【ヒトの神秘】美男美女から何...
-
ウインドウを小さくするとbody...
-
htmlの文字が縦書きになる
-
CSSのクラス名・ID名の指定でワ...
-
スクロールボックスを中央に配...
-
隙間をなくすには?
-
<h1>、<h2>と<p><div>の行間を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
HTML属性での「""」 「''」違い
-
html の divとtable の役割
-
<div id="container">の使いか...
-
1時間30分を簡単に表したいで...
-
min-heightとheightの違いについて
-
複数のボタンを等間隔に、かつ...
-
ヘッダーとフッターだけ背景を...
-
div要素が重なってします
-
divを横に並べる方法
-
スペースを使わず文字位置を揃...
-
<!-- #BeginLibraryItemとは
-
HTMLのJIS規格について
-
スライド部分のリンクが貼れな...
-
セクションをdivで囲むと見出し...
-
要素間、要素内に隙間が空く
-
hタグの右横に画像を表示
-
inline-blockをネストすると表...
-
divとpの使いわけ
-
グリッドレイアウトで"auto-fit...
おすすめ情報