HTML5 コードを書くとき、
と
のどちらを書くべきか、 を書くべきか迷ったことはありませんか。 と書くのはなぜ間違っているのでしょうか?とにかく、私はそれに苦労しました、そして、私はこのトピックが実際には私が思っていたよりもはるかに興味深いことに気づきました。
私の研究プロセスに興味がない場合は、「正当性」セクションに直接ジャンプして答えを得ることができます。
無効な要素
コンテンツのない要素は、コンテンツを含めることができない特別な要素です。
などの他の要素には、コンテンツが含まれないことも、別の要素やテキストが含まれることもできます。
より一般的なコンテンツのない要素は次のとおりです:
あまり一般的ではないコンテンツのない要素には次のものがあります:
これらはすべて既存の内容のない要素です。
は、br にコンテンツを含めることができることを意味するため、正当な HTML ではありません (ただし、
Hello! はまったく意味がありません)。
と
は両方とも非常に一般的です。
を記述する必要があることは誰もが知っていますが、HTML には明示的な要件はありません。 歴史をたどる 内容のない要素を完全に理解するには、その歴史を理解する必要があります。 HTML、XML、XHTML はすべて SGML に基づいています。SGML の正式名称は「Standard General Markup Language」で、1986 年に策定されました。
HTML と XML はどちらも SGML から派生したもので、XML は SGML の制約されたサブセットであり、XHTML は XML に基づいています。
XHTML は基本的に HTML と同じですが、XML に基づいています。次に、コンテンツを含まないタグはSGML には「Null End Tag (NET)」と呼ばれる機能があります。ラベルに単純なテキストのみがある場合、末尾のないラベルを使用すると、ラベルを閉じる必要がなくなります。たとえば、
Quoted textをが含まれていません。)
このロジックに従って、
として解析される場合、
は
として解析されないでしょうか?あなたも私と同じように考えるなら、この構文は愚かだと思うでしょう。 残念ながら、HTML4 仕様の作成者はそうは考えず、それを仕様に書き加えました。ただし、当時のブラウザの製造元がこの構文を気にせず、あまりサポートしていなかったことは明らかです。 (この時点で、ブラウザのメーカーは良いことをしたのかもしれません。) XML (XHTML にも適用可能) 仕様の作成者は、この構文があまり良くないことに気づいたので、単に尾部のないタグの機能を組み込んでいませんでした同時に、コンテンツフリータグの比較的理解しやすい構文も提供します。この構文の名前は「要素のないタグ」で、次のようになります:
。この構文は非常に自然に見えたので、当時のほとんどの開発者はそれが正しい書き方だと考えていました。幸いなことに、HTML は常に改善されており、W3C メンバーは過去に犯した間違いから学んでいます。だからこそ、HTML5 は以前のバージョンと比べて大きな進歩を遂げたのです。
HTML5 の新しい構文を導入する際、W3C は次のように述べました:
HTML5 の構文は HTML4 および XHTML1 と完全な互換性がありますが、SGML のあいまいな HTML4 機能とは互換性がありません。たとえば、末尾タグ ( HTML5 うまくいきました!
合法性 さて、記事の冒頭の合法性に関する質問に戻りましょう。現在の HTML5 仕様における非コンテンツ タグの説明は次のとおりです。(Nice> などの「短いタグ」機能は維持すべきだと思います。これは素晴らしいと思います。しかし、少なくとも HTML はそれほど乱雑ではなくなりました。)
このようなラベルは、以下の表と同じ順序で次のコンポーネントで構成されている必要があります:
「
タグ名。
この項目はオプションです。1 つ以上の属性。各属性の前には 1 つ以上のスペースが必要です。
これはオプションであり、1 つ以上のスペースが必要です。
この項目はオプションであり、「/」文字です。この項目はコンテンツのない要素にのみ表示できます。
「>」文字。
最後から 2 番目の部分の「/」文字はオプションであり、実際の意味はありません。したがって、実際には
と
の間に実質的な違いはありません。正しさ
XML や XHTML を好む開発者は、「はい、/ はオプションですが、
のほうが正しいです」と言うかもしれません。 あなたは間違っていると言わなければなりません。実際、内容のないタグ内の / は実際には許容される文法上の誤りであると主張する人もいます。この許容範囲は、すべてのブラウザとパーサーで
と
を同等に扱うためのものです。この点に関しては、Googleのコードスタイルガイドでもcontent-freeタグを閉じないことが明記されています。
デメリット
もちろん、コンテンツのないタグを閉じないことには欠点がありますが、コードをクリーンで簡潔にするという利点をカバーできるとは思いません。
最初の欠点は、開発者はどのタグにコンテンツ タグが含まれていないのかを把握する必要があることです。
がコンテンツのないタグであるかどうかがわからない場合、その終了タグが見つからない場合、このタグを閉じるべきかどうか疑問に思うでしょう。しかし、コンテンツフリータグは全体で数個しかなく、通常、あるタグがコンテンツフリータグであるかどうかは一目でわかります。
2 番目の欠点は、エディターが閉じられていないコンテンツのないタグを適切に処理できない可能性があることです。エディターの開発者は、コンテンツのないタグを理解し、適切な構文の強調表示とコード補完を提供する必要があります。エディターで を記述するとき、エディターはその後に が続かないことを認識している必要があります。
しかし、これらの機能は実装が非常に簡単で、私が知っているエディターはこの側面を非常によくサポートしているため、これは実際には欠点ではありません。
コンテンツフリータグについての私の考え
コンテンツのないタグの概念は実際には HTML から削除できると思います。これらのタグにコンテンツを追加して、その属性の一部を置き換えることができます。
タグを例に挙げます。この属性は、ユーザーが (おそらく物理的な欠陥のため、または使用しているデバイスが画像をサポートしていないために) 画像を表示できないようにするために存在します。についてです (画像が美的理由だけであれば、実際には alt 属性を追加すべきではありません)。
私の質問は、なぜ alt 属性の代わりに
のコンテンツを使用しないのですか?次のように書いた方が直感的だと思います:
ドージェの画像。
タグには content という属性もあります。コンテンツの値をタグのコンテンツに直接書き込まないのはなぜでしょうか? は、
したがって、実際に保持すべきコンテンツフリーのタグはほんのわずかですが、W3C は下位互換性を考慮する必要があるため、現状を変更することは依然として非常に困難です。
最終的な考え: <script> タグ </script>
このラベルの意味は非常にシンプルですが、文章が非常に冗長なので、本当に気になります。 <script> の内容は my-script.js と論理的に関連していないため、この書き方は間違っているようです。 (HTMLの仕様により、contentとsrc属性を同時に追加することができます) </script>
問題は、<script> タグがコンテンツのないタグではないため、その中に JavaScript を記述できることです。したがって、オプションの終了タグはありません (注釈: これが、<script src="script.js" /> が間違っている理由です)。 </script>
<script> の代わりに <link> タグを使用すると、外部ファイルのインポートにすでに使用されており、必要な属性がすべて提供されるため、最適です。もちろん、Web プラットフォームは常に下位互換性を考慮する必要があります。そうしないと、この構文をサポートしない古いブラウザーはすべてページを解析できなくなります。 </script>
元のリンク: Matias Meno 翻訳: Bole Online - Fang Yinghang
以上がhtmlタグは閉じられていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
