- ベストアンサー
教えてインラインフレームがいまいちわかりません
iframeの質問です。 現在[XHTML 1.0 Transitional]でホームページを作成しております。 質問ですが、iframeタグはdivタグのように閉じる必要があるのでしょうか? divの場合は「 <div id="○○"></div> 」のようにしなければいけないのはわかります。 iframeの場合は「 <iframe src="○○.html" width="100" height="100" border="0" /></iframe> 」でいいのでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ごめんなさい。 他の人へのメールの書きかけの分も一緒にコピペしちゃいました。 申し訳ありません。 という訳で回答です。前回のは無視してください。 XHTMLはXMLにも準拠する必要がありますので、iframeタグやdivタグに限らず、全てタグは閉じる必要があります。 ただ、空要素タグの場合は閉じカッコ直前にスラッシュを入れた場合、タグを閉じたものと同じ扱いになります。 ですので、 <iframe src="○○.html" width="100" height="100" border="0" /> は <iframe src="○○.html" width="100" height="100" border="0"></iframe> と同じです。 そういう意味では <iframe src="○○.html" width="100" height="100" border="0" /></iframe> は閉じタグが重複していますので正しくないですね。
その他の回答 (3)
- ORUKA1951
- ベストアンサー率45% (5062/11036)
iframeは、内容を持つ要素なので<iframe *****/>なんてことはありえません。 iframeに関しては、HTMLもXHTMLもまったく同じです。すなわち <!ELEMENT IFRAME - - (%flow;)* -- inline subwindow --> ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/frames.html#edef-IFRAME ) この - - は開始タグも終了タグも省略できないということです。 →3.3.3 要素宣言 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/sgmltut.html#h-3.3.3 ) HTMLにおいて、終了タグを省略できる要素は、 COLGROUP,DD,DT,LI,OPTION,P,TBODY,TBODY,TFOOT,TH,THEAD,TR ・・・これらは、終了タグがなくてもその要素が終わったと判断できるからですね。たとえぱ <p>なんたらかんたらpはPargrph--段落の意味-- <h2>見出し</h2> だと、<p>内にブロック要素は置けないのでブロック要素が現れた時点で、段落は終わったと判断できるからです。 終了タグが存在しないものは、<img>や<link>ですが、これらは空要素で、内容を持たない要素だからですね。 ★基本的なことですが、HTMLは文書を構成する要素に分解して、それぞれの要素をタグでマークアップするものです。たとえば<p>段落の内容</p>・・・ <img src="*****>は、内容を持たないから終了タグはないのです。 HTMLの要素一覧がこちらにありますからしつかり理解しておくこと ★Optional, Forbidden, Empty, Deprecated, Loose DTD, Frameset DTD ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/index/elements.html ) 一方、XHTMLは、HTMLをXMLの文法に合うように書き直したものですから、空要素は<img />としなければなりません。これは、<img></img>の簡略した書き方です。HTMLの仕様上はこの様な書き方が許されるのですが、これをきちんと解釈できるブラウザはほとんどないでしょう。 なお、transitinalは、もういくらなんでも止めましょう。1999年12月のHTML4.01の勧告以来 「HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 」と強く言われ続けています。XHTML1.0は、HTML4.01をXMLで書き直したものですから同じです。その次のXHTML1.1では、transitinal,framesetはすでに存在していませんでしたし、HTML5では、HTML4.01での 「推奨しない要素・属性とは、新しい枠組みができたことによって、陳腐化したものを指す。推奨しない要素は、リファレンスマニュアルの各所で定義し、推奨しないことを明記する。推奨しない要素は、HTMLの将来のバージョンでは廃止になる可能性がある。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )」 の予告どおり、廃止されています。 XMLの必要がなければ、XHTMLでなくて、HTML4.01strictをしっかり身につけたほうが良いでしょう。
- lato03
- ベストアンサー率70% (21/30)
ホント久しぶりでしたね。カラオケは毎月企画しているのになかなかタイミングが合わなかったですからね。 お仕事大変そうでしたが、お元気でしたのでホント何よりだと思いました。 それにしても参加人数が4人になったのは久しぶりでした。普段は2から でも、あの、、、曲のテンポ変更は実現できていますけど、キーは実現可能かどうかもまだ分からない状態ですが、、、 いや、多分いつかは実現出来ると思いますが、一体いつになる事やらなので期待しないでくださいね。(汗) それに現在はAndroid端末で、目指せデンモク!の方が先だと思っていますので。後は曲データ管理ツールもですね。 XHTMLはXMLにも準拠する必要がありますので、iframeタグやdivタグに限らず、全てタグは閉じる必要があります。 ただ、空要素タグの場合は閉じカッコ直前にスラッシュを入れた場合、タグを閉じたものと同じ扱いになります。 ですので、 <iframe src="○○.html" width="100" height="100" border="0" /> は <iframe src="○○.html" width="100" height="100" border="0"></iframe> と同じです。 そういう意味では <iframe src="○○.html" width="100" height="100" border="0" /></iframe> は閉じタグが重複していますので正しくないですね。
- kosukejlampnet
- ベストアンサー率44% (126/282)
お礼
物凄くわかりやすい回答ありがとうございます