XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法
ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しかし、主流のブラウザの中には XHTML を十分にサポートしていないものもあります。また、一部のウェブページ作成者は XHTML と HTML4 の違いをよく理解していないため、WEB の発展における XHTML の進歩は遅くなっています。


XHTML は HTML ではなく XML です

現在、XHTML に関する主な誤解の 1 つは、XHTML が HTML の単なる別のバージョンであるというものです。この誤解は、Microsoft Internet Explorer が、推奨される application/xhtml+xml 形式ではなく、MIME 形式の text/html の XHTML のみをサポートしているという事実によって発生します。

XHTML ページを text/html MIME 形式で解析すると、HTML ページと違いはありません。ただし、text/xml または application/xhtml+xml MIME 形式で解析すると、厳密な XML の記述および表示ルールに従います。

正しくフォーマットされた XHTML は XML プログラムであり、記述時には厳格なルールに従う必要があります。

1. 文字 < および & は、CDATA タグ (<![CDATA[...]]>) に含まれていない限り、XHTML ドキュメントのコンテンツに表示することはできません。

2. コメントタグ (<!--...-->) には、連続する 2 つのハイフン (--) を含めることはできません。

3. コメントタグ(<!--...-->)に含まれるコンテンツは無視されます


スタイルとスクリプトの内容に関する問題

XHTML が HTML 形式ではなく XML 形式として解析される場合、スタイル タグとスクリプト タグ内のコンテンツによって若干の違いが生じます。

JavaScript には XHTML に存在できない文字が含まれています

JavaScript の一部の特殊文字は、XHTML の CDATA タグの外部には存在できません。

<script type="text/javascript">
var i = 0;
(++i < 10) の間{
//...
}
</スクリプト>

注意: 上記のサンプル コードは、XHTML または XML では許可されていないタグ " < " を使用しているため、整形式の XHTML ではありません。


スタイルとスクリプトコンテンツでのコメントの使用

HTML に精通している作成者は通常、スタイル タグとスクリプト タグの内容をコメント タグ内に配置すると、これらの内容がブラウザーで非表示になることを理解していますが、一部のブラウザーはこれを理解できません。

<スタイル タイプ="text/css">
<!--
本文 {背景色: 青; 色: 黄色;}
-->
</スタイル>
<script type="text/javascript">
<!--
var i = 0;
var 合計 = 0;

(i = 0; i < 10; ++i) の場合
{
合計 += i;
}
アラート('合計 = ' + 合計);
// -->
</スクリプト>

上記の例は、ブラウザでコメント タグ内のコンテンツを無視する方法を示しています。同時に、この例では、text/xml 形式と application/xhtml+xml 形式のコンテンツをブラウザが処理する際の違いも示しています。

Mozilla 1.1+ / Opera 7
CSSは適用されず、JavaScriptも実行されません

Netscape 7.0x / Mozilla 1.0.x
CSSを適用せずJavaScriptを実行する

インターネットエクスプローラー5.5以上
ドキュメントが表示されません。(参照: https://developer.mozilla.org/Ta ... _in_XHTML_Documents )


スタイルと JavaScript に 2 つの連続したダッシュ (--) が含まれています

XHTML ページの JavaScript でコメント タグを使用するときに発生するもう 1 つの問題は、JavaScript に連続する 2 つのハイフン (--) が存在することです。


<script type="text/javascript">
<!--
var 私;
var 合計 = 0;

(i = 10; i > 0; --i) の場合
{
合計 += i;
}
// -->
</スクリプト>

コメントの代わりにCDATAを使用する

スクリプト タグの内容を CDATA ブロックに配置すると、コメント内の 2 つの連続したダッシュの問題に対処できますが、一部の低バージョンのブラウザーでは XML を理解できないためサポートされません。幸いなことに、JavaScript でコメント記号を使用して CDATA ブロックをコメント化することで互換性を実現できます。

<script type="text/javascript">
//<![CDATA[
var i = 0;

一方 (++i < 10)
{
// ...
}
//]]>
</スクリプト>


推奨される xhtml および html 互換性処理方法

XHTML ページにスタイルとスクリプトを直接記述しないでください。良い代替策としては、外部ファイルを使用して CSS と JavaScript を記述し、それを XHTML にインポートすることです。

この勧告は良いものであるように思われます。いずれにせよ、少なくとも今後数年間は、ページを text/html から application/xhtml+xml に変換するプロセスで問題が発生しないことが保証されます。

<<:  CSSとJSでロマンチックな流星群アニメーションを実現

>>:  MySQLクエリキャッシュの簡単な使い方の詳細な説明

推薦する

DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

目次CentOS 8にDockerをインストールする1. yumを更新する2. containerd...

良いデザインについて

<br />「良いデザインとは何か」と答える 1 万人に対して、少なくとも 1 万 1 ...

WeChatアプレット学習ノート: ページ構成とルーティング

最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...

MySql テーブル内の行を削除する実用的な方法

まず、どのフィールドまたはフィールドの組み合わせがデータ行を一意に識別できるかを決定する必要がありま...

MySQL でスロークエリログ機能を有効にする方法

MySQL スロー クエリ ログは、問題のあるクエリを追跡するのに非常に役立ちます。現在のプログラム...

Html、sHtml、XHtml の違いのまとめ

たとえば、<u>には終了文字がなく、ブラウザはそれを認識します。 SHTML は Ser...

Linux 上の LAN 内のすべてのホスト名 (コンピュータ名) をすばやく一覧表示するスクリプト

最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、fi...

MySQL ストレステストツールの使い方

1. MySQL 独自のストレステストツール - Mysqlslap mysqlslap は、mys...

Nginx リバースプロキシの例の詳細な説明

1. リバースプロキシの例1 1. 効果を達成する(1)ブラウザを開き、www.123.comと入力...

MySQL 基本チュートリアル パート 1 MySQL5.7.18 のインストールと接続チュートリアル

この記事から、MySQL を紹介し学習するための新しい一連の記事がスタートします。なぜ MySQL ...

MYSQLテーブルの包括的な概要

目次1. テーブルを作成する1.1. テーブルを作成するための基本構文1.1.1. シンプルなテーブ...

Dockerスペースがいっぱいでコンテナに入れない場合の解決策

トラブル発生が突然で、業務も迫っていたため、現場のスクリーンショットを撮る時間がありませんでしたので...

レスポンシブウェブデザインを実現するためにIEでCSS3メディアクエリをサポートする

今日の画面解像度は、320 ピクセル (iPhone) ほど小さいものから、2560 ピクセル以上 ...

nginx共有メモリの仕組みの詳細な説明

Nginx の共有メモリは、高いパフォーマンスを実現できる主な理由の 1 つであり、主にファイル キ...

MySQL マスター/スレーブ ステータスを監視するシェル スクリプト

Linuxでシェルスクリプトを共有して、MySQLのマスタースレーブ状態を監視し、エンタープライズW...