プロが教える店舗&オフィスのセキュリティ対策術

htmlの記述についての質問です。

<div class="objects"></div>

上記のような要素を

<div class="objects" />

といった表現を出来るか知りたいです。
xhtml、html4、5のそれぞれのバージョンで許可されているか知りたいです。

A 回答 (4件)

いえ、空要素は内容を持ち得ない要素ですから、空要素でないものには閉じタグが必要です。


そもそも
<div class="objects"></div>
自体があってはならないのです。
 HTMLは、それを構成する要素(Element)に分解し、それぞれの構成要素をタグ(tag)でマークアップするものですから、その内容がないというのは矛盾します。ただ、HTMLでは、
AREA,BASE,(BASEFONT,)BR,COL,FRAME,HR,IMG,INPUT,(ISINDEX,)LINK,META,PARAMは、空要素ですから終了タグが存在しません。
 XML(XHTML)の場合は、
<mytag></mytag>
<mytag/>
<mytag />
 は同列ですから、記述可能です。
 これらはXHTMLで定められている要素ではなく、独自に拡張した(extended)要素ですから。HTMLとは別の名前空間に所属します。

 
    • good
    • 0
この回答へのお礼

>HTMLは、それを構成する要素(Element)に分解し、それぞれの構成要素をタグ(tag)でマークアップするものですから、その内容がないというのは矛盾します。

なるほど空要素として用意されていないタグは
何らかの要素を格納していなければならないのですね。

デザイン的なものを表現するためにだけ用意された
要素にdivを使っていて、たびたび以下のような状態になっていました。

<p>ABCD EFGH IJKL MNOPQ RSTUV WXYZ</p>
<p>ABCD EFGH IJKL MNOPQ RSTUV WXYZ</p>
<div class="objects"></div>

上記を踏まえるとhr要素などを
使うのがベストなのでしょうかね。

お礼日時:2012/09/24 09:55

HTML 4.x)


HTML 4のSGML宣言でSHORT TAG YESであるため,省略タグ機構は使えますが,NET tagであっても,
<div class="objects" //としかならないため,/>は書けません。
「HTML 4標準およびSGML標準のみに沿うならば」<div class="objects" /テスト/とかが許されますが,これを理解できるブラウザはまずないでしょう。
HTML 4.01の仕様書B.3.7にも,「unlikely to work with many existing HTML tools.」と書かれているものです。
http://www.w3.org/TR/html4/appendix/notes.html#h …

XHTML 1.x)
XMLの文法に従うため,有効です。
http://www.w3.org/TR/xml/#NT-EmptyElemTag
ただし,XMLの仕様書には内容がEMPTYと定義されているときのみ使うことが推奨されています。
また,XHTML 1.0においても,HTML 4との互換性における要請として,EMPTYの時のみの利用が推奨されています (C.3はinformative)。
http://www.w3.org/TR/xhtml1/#C_3

HTML5 HTML記法)
空要素およびforeign elementに関しては,/>の閉じを許しますが,divには許されていません。
http://www.w3.org/TR/html5/syntax.html#elements-0

HTML5 XHTML記法)
仕様では定義されず,XMLに丸投げされています。
http://www.w3.org/TR/html5/the-xhtml-syntax.html …
このため,先の,EMPTYなものだけ/>を使う,ということが推奨されます。
    • good
    • 0
この回答へのお礼

やはり空要素として定義されている要素しか
/> この表現は使えないのですね。

html5でタグの意味が変わったので
ソースコードを何かいい表現が出来ないか考えていました。

ありがとうございます。

お礼日時:2012/09/24 09:59

空のタグではなく、空の要素ですね。


XMLにおいて、<element/>は、内容を持たない要素を示します。XHTMLはHTMLをXMLの文法に合わせて書き直したものですから、XHTMLはそう書かなければなりません。
 HTML5では、空要素を/>と書くことが出来ますが、その場合はXML宣言が必要になります。
 XHTML/HTMLを問わず、<要素/>は書くことが出来ません。
  ブラウザは、それであっても描画はするでしょう。
    • good
    • 0
この回答へのお礼

すみません。
xml宣言があればhtml5で空要素を />で表現できるのでしょうかね?
xml宣言有+html5ではOKだけどhtml4ではだめですよって意味なんですかね?

お礼日時:2012/09/21 17:01

divはそのような書き方はどのバージョンでもできません。



そういった書き方は、xhtmlにおいて、終了タグのないタグを閉じるためのものです。
終了タグの無いタグと言うのは br、img、input、meta などの独立したタグです。

終了タグがあるものを省略する書き方ではないので、
divやpなどには使用できません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

>どのバージョンでもできません。
根拠や勧告などありましたら教えてください。

お礼日時:2012/09/21 17:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!