• ベストアンサー

XHTMLとHTMLの違いについて

XHTMLのHTMLの違いについて教えてください。 勉強するものの、これといった違いが判らずにこまってます。 (今のところ、HTMLとは記述方式が違うんだよ~とか、XMLの宣言が必要なんだよ~、ということはわかったのですが) (参考したURL) http://www.atmarkit.co.jp/fxml/askxmlexpert/022xhtml/22xhtml.html HTMLとXHTMLの違いとして以下の点が挙げられていることがわかりました。 ----------------------------------------------------------------- 1.文書は整形式でなければならない 2.要素名及び属性名は小文字でなければならない 3.非空要素には終了タグが必要である 4.属性値は常に引用符で括られなければならない 5.属性の省略化はしてはならない 6.meta、hr、br、img などは、空要素として書く 7.属性値内での改行を含む複数の空白は1つと見なす 8.スクリプトおよびスタイル要素の定義が異なる 9.要素の入れ子などSGMLの排除機能を再現できない 10.‘id’および‘name’属性をもつ要素は、‘id’属性を使用する ----------------------------------------------------------------- とあるのですが、違う部分っていうのは「こういった定義部分だけ」であって、動作として大きな違い「ここが違うんだ」といった部分はないのでしょうか? 「書式が厳密になっています。」言葉から、XHTMLは「HTMLをより厳密に書くもの」ということなのでしょうか? また、10番目の、 「‘id’および‘name’属性をもつ要素は、‘id’属性を使用する 」について、イメージできなかったのですが、一体何のことを言っているのでしょうか? 例えば、JavaScriptを使用して、要素を操作する場合は、 getElementById("ID名")にて、操作を行うべきである、と言っているのでしょうか?

  • HTML
  • 回答数6
  • ありがとう数6

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

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

>「テーブルを全体で囲む」というのが「どのように囲まれているのか?」というのがわからず頭を悩ましてます。 このサイトがテーブルレイアウトでの作成手順を公開しているので参考になるかもしれません。 http://www.dreamweaver-guide.com/layout/table/ テーブルをレイアウトに使った場合、body内全てがtableの中に入れられている状況になりますが、 厳密に言えば、文書構造無視してコンテンツをデザイン通り配置するためだけにテーブルを使った時点で、「テーブルレイアウト」になると思います。

Guno-this
質問者

お礼

ありがとうございます。 テーブルレイアウトがどのようなものかわかりました。 >文書構造無視してコンテンツをデザイン通り配置するためだけにテーブルを使った時点で、「テーブルレイアウト」になると思います。 だから、 テーブルレイアウト:UFJカード は、 スタイルシートをオフにしても、レイアウトが崩れなかったのですね。 (XHTMLで記述されたYahooはスタイルが崩れたのに対して、  UFJカードはレイアウトが余り崩れませんでした)

その他の回答 (5)

回答No.5

>こういった普通のレイアウトがありますが、 >このテーブルレイアウトが、文法的に間違いになる、ということでしょうか? 「テーブルレイアウト」というのは、テーブルを全体で囲んでコンテンツを配置するもので、普通にデータを表示しているテーブルとは違います。 テーブルレイアウト:UFJカード(http://ufjcard.com/) XHTML:Yahoo(http://www.yahoo.co.jp/index.html) ソースを見たりCSSをオフにして両者を比べれば一列に並ぶという現象も分かると思います。 >「pagename.html#hoge」と書けば「hogeというIDが、pagename.html、にリンクする機能を持つ」ということでしょうか? これはXHTMLに限ったことではないのですが、要は「ターゲットアンカーを作るのにわざわざリンクタグを使う必要は無い」という意味です。 <a href="index.html">普通のリンク</a> <a href="index.html#main">アンカーへのリンク</a> <div id="main>サンプルソースです</div> #mainの#はIDを意味します。

Guno-this
質問者

お礼

テーブルを全体で囲むというところなのですが --------------------------------- 全体  -----------------------------  テーブル  ----------------------------- --------------------------------- イメージとしてはこういうことでしょうか? 「テーブルを全体で囲む」というのが「どのように囲まれているのか?」というのがわからず頭を悩ましてます。 スタイルシートをoffにして判った点としては ▼テーブルレイアウト:UFJカード  ・一部1列になってしまったところがある  ・そのほかについては最初のレイアウトと余りかわらない ▼yahoo! JAPAN(全部が1列に並んだ)  ・全てのカテゴリーの項目が上から順に並んでいた >ターゲットアンカーを作るのにわざわざリンクタグを使う必要は無い <A Href="#アンカー名">~</A> という風に新たに「ターゲットアンカー用のリンクタグを作らずとも」 <a href="index.html#main">アンカーへのリンク</a>という形で「idをしているすることで、そのidの場所にリンクしてくれる」ということなのですね。 参考URL  http://heo.jp/tag/href/framenamelink.html

回答No.4

目に見える最大の違いは 1.文書は整形式でなければならない という部分じゃないかと。 「XHTMLは、開始タグと終了タグがきちんとバランスし、要素が正しいツリーを形成する整形式であることが一番の基本です。」 つまりHTMLでメジャーだったテーブルレイアウトは文法的に間違いになるわけです。 XHTMLはCSSを切ると上から下にコンテンツが1列に並びます。 動作としての差はあんまりないですが、作成する段階はかなり違いが出てきます。 たとえば、非推奨や廃止される要素・属性が多々あるので、 テーブルレイアウト前提で作成されたオーサリングソフトの機能や DIVレイヤー絶対配置(ビルダーのどこでも配置モード)機能などがXHTMLだと逆に不便になります。 初心者向けソフトの多くがXHTMLに対応していないか、対応していても不備が多いので、 HTMLからXHTMLに変更したいという場合に足を引っ張られることになります。 >‘id’および‘name’属性をもつ要素は、‘id’属性を使用する ターゲットアンカーのことですね。 XHTMLでは<a name="hoge"></a> としていたものを<a id="hoge"></a>とするのですが、 わざわざa要素を作らなくても、IDが付いているのなら pagename.html#hogeと書けば移動させることが可能です。

Guno-this
質問者

お礼

ありがとうございます。 「1.文書は整形式でなければならない 」という点について HTMLとXHTMLで明確に変わっているところなのですね。 「つまりHTMLでメジャーだったテーブルレイアウトは文法的に間違いになるわけです。」という点についてちょっとわからなかったのですが 【テーブルレイアウト】 <table> <tr> <td>テーブルレイアウト</td> </tr> </table> こういった普通のレイアウトがありますが、 このテーブルレイアウトが、文法的に間違いになる、ということでしょうか? >DIVレイヤー絶対配置(ビルダーのどこでも配置モード)機能などがXHTMLだと逆に不便になります。 ブルダーは使った事がないのですが、 XHTMLだとそこが不便になるのですね(驚) >XHTMLでは<a name="hoge"></a> としていたものを<a id="hoge"></a>とするのですが、 という後の下りの、 「わざわざa要素を作らなくても、IDが付いているのなら pagename.html#hoge」と書けば移動させることが可能、という部分がわからなかったのですが、これはどういうことでしょうか? 「pagename.html#hoge」と書けば「hogeというIDが、pagename.html、にリンクする機能を持つ」ということでしょうか?

noname#119508
noname#119508
回答No.3

<img src=aaa.gif> は <img src="aaa.gif" /> 。 必要なのは、 「"」または「'」は必須です 最後に「 /」も必須です。(img要素などの空要素のみ) つまり、<meta />、<br />、<hr />などになります。 <dl compact> は <dl compact="compact">と書かないといけません。 (compact要素については現在非推薦または廃止要素なので、使わないでください) <IFRAME SRC="aaa.html">aaa.html</IFRAME> は <iframe src="aaa.html">aaa.html</iframe> と書かないといけません。 XHTMLのファイル <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> </head> <body> <h1>aaa</h1><br /> <img src="aaa.gif" /> </body> </html> HTMLのファイル <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> </head> <body> <h1>aaa</h1><br> <img src="aaa.gif"> </body> </html>

Guno-this
質問者

お礼

ありがとうございます。 記述面ではそのようなところが違ってくるのですね。 記述としての違いについて、 教えていただきましてありがとうございます。

  • Werner
  • ベストアンサー率53% (395/735)
回答No.2

今のところWebページを作成するに当たっては、HTMLとXHTMLの機能的な違いはあまり無いです。 一応、XHTMLだとSVGみたいな他のXML文書が埋め込めたりするのですが、 ブラウザの対応の問題からかあまり使われてないようです。 (あとは、XHTML1.1以降だとフレームなどの非推奨な要素が より冷遇されているのは機能的な違いかもしれませんが。) 他に、XHTMLはXMLだからXMLパーサーを通せるとかはありますが Webページ作成するだけならあまり関係なさそうですね。 > 「name」も「id」も両方が使用されている、なんてことは、あってはならないでしょうか? XHTML1.0は互換性のためにid属性とname属性の併記が許されます。 XHTML1.1ではmame属性が廃止されているのでid属性しか使えません。

Guno-this
質問者

お礼

どうもありがとうございます。 機能的違いというのはあまり無いのですね。 私はてっきり「XHTMLならではのこれができるんだ!」みたいなのがあると思っていたのです。 XHTML1.1はname属性が廃止されているのですね。 うーん・・・ name属性があると何か不具合があるのでしょうか? (稚拙な考えですが、id=1つしかないもの(固有のもの)で、名前も固有のもの(と断定して言いのかはわからないですが)、であるため「どちらも固有のものを指すのであれば、使用頻度が低いほうを削除してしまおう」という内容なのかなと考えたのですが。)

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

>動作として大きな違い「ここが違うんだ」といった部分はないのでしょうか? 「HTMLでできないxxxが、XHTMLだとできる」と言うことはないです。 >「‘id’および‘name’属性をもつ要素は、‘id’属性を使用する 」 <form method="POST" action="cgi-bin/xxx.cgi" name="f1"> とは書かずに、 <form method="POST" action="cgi-bin/xxx.cgi" id="f1"> と書く。

Guno-this
質問者

お礼

ありがとうございます。 >「HTMLでできないxxxが、XHTMLだとできる」と言うことはないです。 その逆も然りということですよね。 > <form method="POST" action="cgi-bin/xxx.cgi" name="f1"> > とは書かずに、 > <form method="POST" action="cgi-bin/xxx.cgi" id="f1"> > と書く。 例外として気になっていることがあるのですが、 「idとnameの両方が振られているサイト」をみたことがあるのですが、 <form method="POST" action="cgi-bin/xxx.cgi" id="f1" name="f1">という風に「name」も「id」も両方が使用されている、なんてことは、あってはならないでしょうか?

関連するQ&A

  • SGML、HTML、XML、XHTMLなどの違い

    SGML、HTML、XML、XHTMLなどの違いについて教えてください。 情報処理技術者試験を受けなければならなくなったのですが、 (すごいストレスになっていますorz) 業務で全く使用しない項目なので、専門説明を読んでも、 よくわからず違いをおぼえられません。 初心者に教えてあげるような感じでお願いします。

  • HTMLとXHTML

    HTMLとXHTMLがあるようですが違いはどこなのでしょうか? HTMLは経験が多少ありますがXHTMLは経験がありません HTMLはリンクやテーブル、画像リンクなどは経験ありますが インライン要素やブロック要素、meta言語などは今本見ている状況です これからきっちりHTMLはやるにはXHTMLを覚えるべきでしょうか? XHTMLはXMLを使うのでMathMLやSVGなど他のXML文書を埋め込むことができる らしいのですがどのような場面で使うのでしょうか?

    • ベストアンサー
    • HTML
  • HTML,XHTML,XMLについて教えてください

    自分は趣味でホームページを作っているものです。 HTML,CSSを使用して作成しているのですが、最近本屋さんへ行く機会があったので本を見ていたところXHTMLやXMLという本がホームページのコーナーにありました。 立ち読みをして見ていたのですがよくわかりませんでした。 ・HTMLとXHTMLの違いを教えてください。HTMLからXHTMLに変わるのなら 変わることで何か効率でも良くなるのでしょうか? ・ホームページでXMLは何をするものなのでしょうか。 すみませんがよろしくおねがいします。

    • ベストアンサー
    • HTML
  • HTMLの書式

     HTMLの正確な書式を書いた文書を探しています。  dtdには書式の定義はありませんし、SGMLの書式についてのJISの翻訳「文書記述言語SGML」を見たのですが、どうもHTMLの書式とは違う部分があるように思えます。  HTMLの書式をBNFかそれに似たようなレベルで厳密に定義した仕様をご存知ありませんでしょうか?

    • ベストアンサー
    • HTML
  • リッチテキストとHTMLの違いについて。

    ひねくれた質問ですがよろしくお願いいたします。 アウトルックエキスプレス使用しておりますが、 書式メニューにリッチテキスト(HTML)とありますが、 厳密に言うとリッチテキスト形式とHTMLとの違いって あるのでしょうか? リッチテキストもSGMLから派生しているのでしょうか。

    • ベストアンサー
    • HTML
  • XHTMLの必要性について質問!

    XHTMLを調べると次のような文章がありました。 ------------------------------ <XHTMLとは、Webページを記述するためによく使われるHTMLを、XMLに適合するように定義し直したマークアップ言語。W3Cが仕様策定を行っている。 もともとHTMLはXMLの親にあたるSGMLから派生した言語で、Webブラウザメーカー主導で独自の拡張が続いてきた。このため、HTMLはXMLとは一部整合性を欠く言語仕様となっているが、両者の違いはある程度吸収できる範囲のものであるため、従来のWebブラウザでも問題なく見られ、かつXMLに準拠した文書を作成する言語仕様としてXHTMLが作成された。 HTMLをXML準拠のものに更新した理由として、インターネットをはじめとしたオンラインでのデータの送受信にXMLが使用されることを想定し、HTML文書もXML処理系で統一的に扱える環境を整える必要があったことが挙げられている。> ------------------------------- (質問1) この文面からすると、HTMLでも「従来のWebブラウザで問題なく見られる」と判断するのですが、どうしてXHTMLが必要なのかが解りません。 (質問2) 現在、HTMLでは不都合が生じているPCサイトがあれば、ご紹介願います。 (質問3) 今後、HTMLでは動作が出来なくなるのでしょうか? 以上。宜しくお願いします。

    • ベストアンサー
    • HTML
  • HTML5の文法の限界を知りたいです

    どうも、今数年ぶりにHTMLに仕様書の読み直しをしているのですが HTML5の仕様書で何故かSGMLでの文法の定義が文書中に見当たらない状態で困っています。 http://momdo.github.io/html5/Overview.html 具体的にはidとクラス名で使える文字がどこまであるか、というのを開発前にきちんと明らかにしておきたいのですが、論拠になる仕様自体がありません。 おそらく、HTML5周辺で定義されている関連文書に記述がありそうなのですが、何方かありかなどをご存じないでしょうか?

    • ベストアンサー
    • HTML
  • HTML文書のタグの属性をjavascriptで抜き出す。

    はじめまして。 現在javascriptでHTML文書にある要素の属性名を抜き出すロジックを 考えているのですが、詰まっています。 例えば <form name="A" action="B"> という要素があった場合にその属性名「name」「action」を抜き出したいのです。 HTML文書にある要素名を抜き出すロジックは何とか出来ました。 以下がその関数です。 -------ここから------- function test() { kazu=document.all.length //文書の要素数を設定 var tagname='' for(i=0; i<kazu; i++){ tagname=tagname+document.all(i).nodeName+'\n' //要素名を抜き出す。 } document.send.aa.value=tagname //フォーム部品に結果をセットする。 } ------ここまで----------- 要素名を抜き出している部分は document.all(i).nodeName とかけましたが 属性名を抜き出すのは document.all(i).attributes… のように書くんだろうな… と予測して実行したのですがエラーがでました。 DOM文書を読んでみたのですがいまいちピンときません。 どなたが教えていただけませんか? 使用しているブラウザはWindowsのIE5.5です。

  • name属性とid属性

    name属性とid属性の定義の違いについて教えてください。 <タグ name="xxx" id="yyy">のように 同じタグ内に、2つを使用していいのでしょうか。 もし、2つを使用してよいのなら、 JavaScriptでの扱いについて教えてください。

    • ベストアンサー
    • HTML
  • HTML要素のid/class名の長さについて

    HTML要素のid/class名の長さについて HTML要素のid/class名についてですが、この名前の長さは何文字まで指定できるのでしょうか? 特に制限はなく、ブラウザなどの実装に依存するのでしょうか? <div id="so-loooooooooong-id-name"></div>

    • ベストアンサー
    • HTML

専門家に質問してみよう