- ベストアンサー
div要素って
他のh1 p ul li などはそれぞれ文章構造の意味がありますが、 div要素自体に意味はありませんって解説サイトで見ました。 確かにそういえばcssでスタイルを適応するため、レイアウトのために divを使ってきた気がします。 文章構造html と 見た目css をわけた方が良いとかも聞きますし・・ divって使わないほうが良いんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
html4.01までの仕様については、他者の説明を参考に! HTM5では、新たに<artcle>記事、<section>セクション、<header>,<nav>,<aside>:補足などの要素が追加されます。 class属性でないことに注意が必要! よりよいものにするため、HTML5では、あいまいな<div>要素を使わないようにしようと、上記の要素が追加されました。 しかし、これらを利用しても完全に、文章構造と、デザインの分離ができないため、あえて<div>要素を使うことになります。 HTML5は現在策定中段階であり、勧告としての最終バージョン、HTML4.01・xhtml1.1が現行です。 使わない方がよいのではなく、使わざるおえないのが、現状です。 仕様勧告が出るころには、修正されているかも???
その他の回答 (2)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
常に仕様書を読む癖をつけましょう。答えはそこにある。 「DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )」 と書かれています。 h(見出し=headding)、p(段落=paragraph)、ol(序列リスト ordered list)などは意味がありますが、HTML4.01/XHTML1.1までは、文書構造を示す要素がありませんでしたから、DIVを使ってきました。 ところがDIVとは、何の意味もないブロック、SPANは何の意味もない行内要素 『各々、内容が行内であるか(SPAN)ブロックレベルであるか(DIV)は定めるが、他のプレゼンテーション的語彙を示すことはない。』 でもありました。 そのため、検索エンジンなどにはさっぱりわからない。もちろん仕様書のこの部分を正しく読んでいた人は、 <div class="header">文書のヘッダ</div> <div class="section">本文</div> <div class="footer">フッタ</div> としてきたはずです。 ところが、そうでない人のほうが多く、<div class="leftMenue"><div class="content"><div class="sedebar">とか・・・。 たぶんデザインのためでしょうが、気が変わってサイドじゃなくて下に表示したい、左じゃなく右になんて時に齟齬を生じる。(^^) HTML5では、この反省 【問題2】文書内に埋め込まれた「意味」が不明確( http://www.atmarkit.co.jp/ait/articles/1008/30/news106_2.html ) から、文書構造を示す新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )が加わり、DIVは、他に適当な要素がない時に限り使うもの--原則として使わないものになります。 (注)hgroupは破棄され、mainが追加になりそうです。 >divって使わないほうが良いんでしょうか? XHTML1以前のXHTML1.0,HTML4.01では、文書構造を示すために使用します。 使うならHTML5の新しい要素の名前とその意味を流用してclass名にすると良い。 <div class="header"><div class="header"><div class="nav"><div class="aside">なら検索エンジンも理解してくれる。なにしろ自分もわかりやすい。 HTML5では、他に適当な要素がないときの最後の手段として使います。 【引用】____________ここから NOTE: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.4 Grouping content — HTML5( http://www.w3.org/TR/html5/grouping-content.html#the-div-element )]より
- mitoneko
- ベストアンサー率58% (469/798)
本来のdiv要素の使い方は、例示でいくつかあげられているような、構造を示すタグが「ない」構造を表示するために存在します。 例えば、ナビゲーション用のサイドバー、本文が同時に存在するページを考えてみます。サイドバーや本文を示すようなタグはありませんね。(実は、html5には存在します。) でも、立派な文書構造としてのグループではあります。 このような時に、クラス名をいわば構造名として定義するような感じで使います。 <div class="sidebar"> なんて感じですね。 文書の構造として、意味があれば、正しいdivの使い方でしょう。目安としては、class名に指定した名前が、文書の構造を表しているなら、多分、正しい使い方です。これが、文書の内容に踏み込んでいたら、少し考えた方が良いかもしれません。 でも、時に、乱用が見られるのは事実です。