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クエリキャッシュの簡単な使い方の詳細な説明

推薦する

ECMAScriptにおけるプリミティブ値と参照値の詳しい説明

目次序文動的プロパティとは何ですか?値のコピー値の種類を決定する要約する序文これは JavaScri...

Vue ページレンダリングにおけるキーの適用例チュートリアル

導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...

有名なウェブサイトのロゴに使われている25種類のフォントのコレクション

この記事では、25 の有名な Web サイト (Google、Yahoo、Twitter、Digg ...

Linux システムでログを手動でスクロールする方法

ログローテーションは、Linux システムでは非常に一般的な機能です。ログローテーションは、システム...

CSSは2つの要素をブレンドする効果(スティッキー効果)を実現します。

数年前、Taobaoのモバイル版の左下隅に面白い丸いボタンがあったことを覚えています。それをクリック...

CSS で透明なグラデーション効果を実装するためのサンプルコード

Zhihu Discovery コラムのタイトル画像は、通常、以下のように表示されます。明らかに、グ...

Kafka の Docker デプロイメントと Spring Kafka 実装

この記事は主にDockerによるKafkaのデプロイとSpring Kafkaの実装について紹介しま...

60件のページング事例と優れた実践例を推奨

<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...

カラーブロックレポート効果の動的な表示を実現する HTML (サンプルコード)

HTMLカラーブロックを使用してデータを動的に表示する <スタイル タイプ="te...

Vueカスタムテーブル列実装プロセス記録

目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...

vscodeでnpmを使用してbabelをインストールする方法

序文前回の記事ではNode.jsのインストールと設定を紹介しました。今回はVScodeでbableを...

CSS3 レーダースキャンマップのサンプルコード

CSS3 を使用して、クールなレーダースキャン画像を実現します。 コード上で直接: // インデック...

MySql 最適化のための my.ini 中国語構成スキームの詳細な説明: InnoDB、4GB メモリ、および複数のクエリ

この記事は、4G メモリ システム用の MySQL 構成ファイル ソリューションです (主に Inn...

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

Flash が HTML div 要素を覆わないようにする方法

今日、フラッシュ広告のコードを書いていたとき、フラッシュに付属するリンクはポップアップ広告と間違われ...