• 締切済み

HTMLソースにXHTMLの混在は可能ですか?

はじめまして。 早速ですが、 現状、サイトAとサイトBがあり、 サイトAは <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> で定義されたHTML文書で書かれており、 サイトBは <!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"> で定義されたXHTML文書で書かれています。 そして、サイトBのフッターにあるグローバルメニューをサイトAの方にも挿入・反映したいと考えています。 このような場合、HTML文書の中にXHTML文書を混在させることは可能なのでしょうか? 皆様のお知恵を拝借させてください。 宜しくお願い致します。

  • Lenze
  • お礼率50% (1/2)
  • HTML
  • 回答数2
  • ありがとう数1

みんなの回答

  • UKY
  • ベストアンサー率50% (604/1207)
回答No.2

一応「script/style 要素は中身の解釈の仕方が違うので適宜書き換える」とは書きましたが、実際のところ、script/style 要素の手直しが必要になるのはどちらかというと HTML を XHTML に書き換えるときのほうで、XHTML を HTML に直すときは手直しする必要がない場合がほとんどです。 というのも、script/style 要素を使うときにコメントのこととか CDATA セクションのこととかで気を使わなければいけないのは XHTML の方で、HTML の方は従来の「一般的」 な書き方でそのまま書いておけば問題ないからです。 (実際、XHTML で script 要素が間違って書かれていることはよくあるが、HTML では間違っていることはまずない)

参考URL:
http://www.aquea.jp/2005/10/html-script-element
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.1

基本的に HTML と XHTML は別物なので混在できないのですが、構文は似ているのでちょっと手直しをすれば HTML 4.01 Transitional の中にもともと XHTML 1.0 Transitional だったものを入れることができます。 手直しの際に気をつけるべきことは、大体以下のような点です。 * HTML では xml:lang 属性ではなく lang 属性を使う。 * br や img などの中身のない要素は、タグの最後の部分を「/>」から「>」にする。 * script/style 要素は中身の解釈の仕方が違うので適宜書き換える。

Lenze
質問者

お礼

はじめまして。UKYさん。 返答ありがとうございます。 うーんやはりご指摘のとおり、要素の無い閉じタグの扱いなどの違いを吸収させる必要があるということですね。。。 ありがとうございます。 ところで、自身勉強不足で恐縮なのですが、 >script/style 要素は中身の解釈の仕方が違うので適宜書き換える。 の「中身の解釈の仕方が違う」ということですが、JavaScriptやCSSで書かれた内容の解釈がXHTMLとHTMLに取り込んだ場合では異なるということでしょうか? また、このあたり自身で調べる場合、何か適切な書籍やサイトはありますか? このあたりお教え頂ければ幸いです。

関連するQ&A

  • phpでreadfile(include)した結果に?が出力される

    phpで以下のようなA,Bの2つのファイル構成にした際に ブラウザでAをアクセスし、ソースを表示するとreadfileした結果の前に「?」が出力されます。 「?」と出力されるのが何か問題だと思うのですが、分かりません。 ご指南をお願いいたします。 ?<!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"> Aファイル <?php readfile('inc/xhtml.inc'); include('inc/dbcon.php'); include('inc/cm468_2.inc'); ?> ----------- Bファイル <!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"> -------------------------------- 出力結果 ?<!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">

    • ベストアンサー
    • PHP
  • XHTML 1.0 Transitional でインラインフレームの表示方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> でインラインフレームを表示する方法はありますか? 普段は <DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">のドキュメントタイプでサイトを作っているのですが、他の人に作ってもらったサイトが上記のタイプで作られていました。そのサイトにiframeを組み込みたいのですが、表示がされませんでした。そこで、HTML 4.01 のタイプに変更したところ、文字の大きさや高さなどが崩れてしまいます。何かよい方法がありましたら教えてください。宜しくお願いします。

    • ベストアンサー
    • HTML
  • XHTMLの文字コードのEUC-JPの文字化け

    いつもはHTML4.01で作業をしていて XHTMLはどうも不慣れなせいか 今、外注が作成したHPを修正していて 文字コードをEUC-JPにどうしても変更しなければならないのですが それがうまくいかず、文字化けが発生してます。 <!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=UTF-8" /> を <?xml version="1.0" encoding="euc-jp"?> <!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=euc-jp" /> このように設定したら文字化けが発生しました。 どのように設定したら文字化けがなくなりますか?

  • DreamweaverのXHTMLとIEの関係

    現在作成しているサイト(ホームページビルダーで作ったもの)をDreamweaverでHTMLからXHTMLに変換しようと思い変換してみると 私のサイトはインラインフレームに情報を表示しているのですが、 文字がはみ出していないのにもかかわらず横スクロールバーがでてしまいます。 原因を突き止めようと色々していると、変換時に出てくる <!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> があると横スクロースバーがでることはわかりました。 しかし、これを消してしまうとDreamweaverがXHTMLとして認識してくれません。 <!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> を消さずに横スクロールバーを消す方法は無いでしょうか? ちなみにFireFoxでは横スクロースバーはでません。 IEのみでます。

  • xhtml1.0でのJavascriptの動作

    こちらのフローティングメニューをWEBサイトに導入します。 http://dynamicdrive.com/dynamicindex1/staticmenu.htm 導入するサイトのDOCTYPEは <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> である必要があります。(【1】とします) フローティングメニューを導入しましたが動作しませんでした。 対策としてDOCTYPEを以下にした場合、問題なく動作しました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> (【2】とします) このフローティングメニューが 【1】:動作しない 【2】:動作する という両者の違いは、htmlとxhtmlの違いのほかに、 なにかあるのでしょうか。 また、【1】でも動作させるためにはどうしたらよいのでしょうか? ※【2】を試した理由は、 下記のサイトで似たようなものが導入されており、宣言がそのような記述になっていたからです。 http://www.nhncorp.jp/intro/company_info.html

  • 画像をループさせて表示させたい。

    すみません、jquery初心者です。 下記サイトのようにコンテンツをループで表示させたいのですが、 http://yurubu.org/jquery-autoload/513 HTMLの <!DOCTYPE html> <html lang="ja"> を <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio … <html xmlns="http://www.w3.org/1999/xhtml"> に変更すると動きません。。 どう変更すれば動くのでしょうか? ご教授頂けると大変助かります。 よろしくお願いします。

  • 教えてください。ホームページを作っているのですが、宣言文を入れると、中

    教えてください。ホームページを作っているのですが、宣言文を入れると、中央に配置できなくなります。 これはどうすればよいのでしょうか?? <?xml version="1.0" encoding="UTF-8"?> <!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>

  • XHTMLのソースで文字ばけします

    とあるHTMLの本に書いてあるとうりソースをうっていくと <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtyd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type"content="text/html;charset=utf-8"/> <title>もりのみや<title/> などのWeb上で文字入力をすると文字化けします。 どうしてでしょうか? インターネットエクスプローラーを使っています。

  • XHTMLの正しい書き方について質問です。

    WordPressにてHPを作成しています。 出力されたページをAnother HTML-lintでチェックしたところ、XHTML 1.0 Transitionalとして記述しているはずなのですが「HTML4.01 Transitional としてチェックしました。」となり、かなりの数のエラーが検出されてしまいました。 HP作成に関してかなりの初心者でして、何が悪いのかが分かりません。なにとぞご教授下さい。 /* ------------------------------------------------------------ ページソース最初の3行 ------------------------------------------------------------ */ <?xml version="1.0" encoding="UTF-8" ?> <!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" lang="ja" xml:lang="ja"> /* ------------------------------------------------------------ 最初の3行に対するエラー内容 ------------------------------------------------------------ */ 8: line 1: 最初の記述が DOCTYPE宣言ではありません。 4: line 1: ここに <HTML> が省略されているようです。省略しないようにしましょう。 4: line 1: ここに <HEAD> が省略されているようです。省略しないようにしましょう。 2: line 1: ここに </HEAD> が省略されているとみなします。 9: line 1: <HEAD>~</HEAD> 内には <TITLE> が必要です。 1: line 1: <HEAD> と </HEAD> の間が空です。 4: line 1: <HEAD>~</HEAD> 内に <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="~"> が含まれていません。 4: line 1: ここに <BODY> が省略されているようです。省略しないようにしましょう。 5: line 1: メタ文字 `<` は `&lt;` と書かなければなりません。 5: line 1: メタ文字 `>` は `&gt;` と書かなければなりません。 9: line 2: DOCTYPE宣言は文書の先頭でなければなりません。 2: line 3: <HTML> の前に </BODY> が省略されているとみなします。 9: line 3: <HTML> を 1行目の <HTML>~</HTML> 内に書くことはできません。 5: line 3: <HTML> に他のHTML用の属性 `XMLNS` が指定されています。 5: line 3: <HTML> に他のHTML用の属性 `XML:LANG` が指定されています。

    • ベストアンサー
    • HTML
  • Dreamweaverでバリデートをかけてソースをチェックしたところ、

    Dreamweaverでバリデートをかけてソースをチェックしたところ、 タグ"html"には、現在アクティブなバージョンでは属性"xmlns:spry"がありません。 [XHTML 1.0 Transitional] タグ"div"には、現在アクティブなバージョンでは属性"spry:region"がありません。 [XHTML 1.0 Transitional] タグ"div"には、現在アクティブなバージョンでは属性"spry:repeat"がありません。 [XHTML 1.0 Transitional] というエラーがでてしまいました。 現在のDOCTYPE宣言は、 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> です。 html要素は、 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja" xmlns:spry="http://ns.adobe.com/spry"> です。 DOCTYPEに問題があると思い、XHTML1.0のStrict DVDやFrameset DVDなどに変更してみましたが、エラーは[XHTML 1.0 Transitional]の部分がそれぞれのDTDに変わるだけで、エラーは減りませんでした。 ちなみにHTML 4.01に変更したらエラーがとても増えました。 ※一番上のエラーですが、 htm要素中のxmlns:spry="http://ns.adobe.com/spry"を削除したら、エラーがなくなりました。 残りは2つです。 助けてください。

    • ベストアンサー
    • HTML

専門家に質問してみよう