• ベストアンサー

空要素タグを ・・・

いつもこちらで勉強させていただいております。 先日、当ホームページのmetaタグを全ページ書き換えました。 そして、 http://openlab.ring.gr.jp/k16/htmllint/htmllintl.html のページで、文法チェックをすると、 「HTML4.01 Transitional では空要素タグを `<LINK />` と書くことはできません。」 と出ます。 空要素タグで検索するといろいろ出てきますが、イマイチ内容が理解できません。 どなたか分かりやすく教えていただけないでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

DTDで内容モデルがEMPTY(meta要素,link要素,img要素)となっている要素について, HTMLは終了タグを【書いてはいけない】 XML/XHTMLはどんなときでも終了タグを【欠かしてはならず】,【省略形として/>という形で閉じることが許されている。】 以下の理由によりそのほうが望ましいとされる 注:SGML/HTMLに関するものであり,XMLに関する話ではありません。 http://www.ne.jp/asahi/minazuki/bakera/html/sgml/omittag.html.ja.utf-8 http://bakera.jp/hatomaru.aspx/yomoyama/shorttag >こうしておくと、旧来の SGML パーサでも、DELIM NET "/>" などと宣言することで辻褄を合わせることができます。 EMPTYでない要素についてはたとえ内容が空であっても http://oshiete1.goo.ne.jp/qa2796949.html 省略しないで書くことが望ましいです。 さて,今回検証したファイルは HTML4.01 Transitional なので,/>という書式を取ってはいけません。 したがってエラーが出ているのです。

その他の回答 (3)

回答No.4

>これによると、ご指摘の通り、css" />となっているため、ここが引っかかっているようです。 >当方、このサイトのみ、忍者の無料ホームページスペースです。 明らかにそれが原因です。 現象確認・再現しました。 取り除く方法も見当たらないので・・・あきらめるしかないかなあ・・・ (あるいはHTML 4.01 TransitionalではなくいっそのことXHTML 1.0 Transitionalに書き直すか,ですね。 注:target属性を使っているのでStrictは不可。 質問者様掲示のソースではありませんが,手持ちのソースをXHTML 1.0 Transitionalで検証して100点が取れています) 俺は知らないですが,探せば一気に小文字にするソフトとかあると思いますし。

ha-mu-ta
質問者

お礼

何度もありがとうございました。 あきらめるしかないか…。 前頁100点狙ってたので悔しいです。 ありがとうございました。

回答No.3

再現できません。 当方環境で「DATA」と「Shift_JISのファイルを作成してアップロード」で試して見ましたが、以下の5つしか出ません。 0: line 11: (<HEAD>~</HEAD> 内に <LINK REV="MADE" HREF="mailto:~"> が含まれていません。) → 解説 124 0: line 11: (<HEAD>~</HEAD> 内に <LINK REL="NEXT" HREF="~"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 125 4: line 12: ここに <BODY> が省略されているようです。省略しないようにしましょう。 → 解説 61 2: line 12: ここに </BODY> が省略されているとみなします。 → 解説 64 1: line 12: <BODY> と </BODY> の間が空です。 → 解説 51 2: line 12: ここに </HTML> が省略されているとみなします。 → 解説 64 ちなみにHTMLとBODYの終了タグを補ってあげると 0: line 11: (<HEAD>~</HEAD> 内に <LINK REV="MADE" HREF="mailto:~"> が含まれていません。) → 解説 124 0: line 11: (<HEAD>~</HEAD> 内に <LINK REL="NEXT" HREF="~"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 125 1: line 13: <BODY> と </BODY> の間が空です。 → 解説 51 この3つになります。(上二つは気にしなくていいほど軽傷,一番下も軽傷)

ha-mu-ta
質問者

お礼

回答への補足を再度… 文法チェックをもう一度ゆっくりとじっくり見たら… line11がクリックできるようになってて、クリックしてみたら… 下部に「チェックしたHTMLは以下のとおりです。」 のline11になりました。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="JA"> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="CONTENT-STYLE-TYPE" CONTENT="text/css"> <META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> <TITLE>●●●</TITLE> <link rel="stylesheet" type="text/css" href="css1.css"> <meta name="description" content="●●●"> <meta name="keywords" content="●●●"> <link rel="stylesheet" type="text/css" href="http://img.shinobi.jp/tadaima/tdftad.css" /></HEAD> と、変わってしまってます…。なぜか。 これによると、ご指摘の通り、css" />となっているため、ここが引っかかっているようです。 当方、このサイトのみ、忍者の無料ホームページスペースです。

ha-mu-ta
質問者

補足

ありがとうございます。 なんででしょうか…。 私は、ホームページをいくつか作っており、先ほど提示した内容は、すべてのホームページに共通しているのにもかかわらず、ひとつのホームページにしか出ません。 ちなみに、 HTML4.01 Transitional では空要素タグを `<LINK />` と書くことはできません。 の次は、 <TABLE> には SUMMARY 属性を指定するようにしましょう。 となるので、 0: line 11: (<HEAD>~</HEAD> 内に <LINK REV="MADE" HREF="mailto:~"> が含まれていません。) → 解説 124 0: line 11: (<HEAD>~</HEAD> 内に <LINK REL="NEXT" HREF="~"> などのナヴィゲーション用のリンクが含まれていません。) → 解説 125 1: line 13: <BODY> と </BODY> の間が空です。 → 解説 51 は私のほうには出ません。

回答No.1

スタイルシートのリンク等に <link rel="stylesheet" href="style.css" type="text/css" /> などと指定していませんか? HTMLでは空要素タグ、つまり<br><link><img>などの、閉じる必要のないタグに<br />としてはいけないのです。 XHTMLやXMLでは閉じる必要があるのですが… なので、最後の" /"を削除してみてください(半角スペースを消すのも忘れずに)。 http://www.tagindex.com/html_tag/basic/emp_element.html

ha-mu-ta
質問者

補足

ありがとうございます。 それが・・ないのです。 下記内容です。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML LANG="JA"> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=Shift_JIS"> <META HTTP-EQUIV="CONTENT-STYLE-TYPE" CONTENT="text/css"> <META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> <TITLE>●●●</TITLE> <LINK REL="STYLESHEET" TYPE="text/css" HREF="css1.css"> <meta name="description" content="●●●"> <meta name="keywords" content="●●●"> </HEAD> です。 文法チェックでは、line11に上記警告文が出るのですが、11行目は、</HEAD>です。 さっぱりわかりません。

関連するQ&A

専門家に質問してみよう