


HTML-Spezifikationen, die Sie kennen müssen (organisiert und geteilt)
Dieser Artikel vermittelt Ihnen Wissen über HTML-Spezifikationen. HTML ist eine Hypertext-Auszeichnungssprache, die die Struktur von Webseiten beschreibt und schon immer weit verbreitet war. Das Ziel dieses Dokuments besteht darin, den HTML-Codestil innerhalb der internen Entwicklung konsistent zu machen und das Projekt leichter verständlich und wartungsfreundlicher zu machen. Ich hoffe, es hilft allen.
HTML-Spezifikation
1 Vorwort
HTML wurde schon immer häufig als Hypertext-Auszeichnungssprache verwendet, die die Struktur von Webseiten beschreibt. Das Ziel dieses Dokuments besteht darin, den HTML-Codestil innerhalb der internen Entwicklung konsistent zu machen und das Projekt leichter verständlich und wartungsfreundlicher zu machen.
2 Codestil
2.1 Einrückungen und Zeilenumbrüche
[Obligatorisch] Verwenden Sie 4 Leerzeichen als Einrückungsebene, 2 Leerzeichen oder Tabulatorzeichen sind nicht zulässig.
Beispiel:
<ul> <li>first</li> <li>second</li> </ul>
[Empfohlen] Maximal 120 Zeichen pro Zeile.
Erklärung:
Zu langer Code ist nicht einfach zu lesen und zu warten. Angesichts der Besonderheiten von HTML gibt es jedoch keine strengen Anforderungen.
2.2 Benennung
[Obligatorisch] Klasse muss ausschließlich aus Kleinbuchstaben bestehen und Wörter werden durch - getrennt.
[Obligatorisch] Die Klasse muss den Inhalt oder die Funktion des entsprechenden Moduls oder der entsprechenden Komponente darstellen und darf nicht mit Stilinformationen benannt werden.
Beispiel:
<!-- good --> <div></div> <!-- bad --> <div></div>
[Obligatorisch] Die Element-ID muss auf der Seite eindeutig sein.
Erklärung:
Auf derselben Seite enthalten verschiedene Elemente dieselbe ID, was nicht der Attributbedeutung von ID entspricht. Und die Verwendung von document.getElementById kann zu schwer nachvollziehbaren Problemen führen.
[Obligatorisch] id Es wird empfohlen, alle Wörter in Kleinbuchstaben zu schreiben und die Wörter durch - zu trennen. Der Stil muss für dasselbe Projekt konsistent sein.
[Empfehlung] Die ID- und Klassennamen sollten so kurz wie möglich sein, Konflikte vermeiden und klar beschreiben.
Beispiel:
<!-- good --> <div id="nav"></div> <!-- bad --> <div id="navigation"></div> <!-- good --> <p></p> <!-- bad --> <p></p> <!-- good --> <span></span> <!-- bad --> <span></span>
[Obligatorisch] Es ist verboten, Klassen ohne Stilinformationen für Hook-Skripte zu erstellen.
Erklärung:
Klasse ist nicht zulässig. Sie wird nur verwendet, damit JavaScript bestimmte Elemente auswählen kann. Andernfalls kommt es leicht zur Verbreitung von CSS-Klassen.
Die Verwendung der ID- und Attributauswahl als Hook ist ein besserer Weg.
[Obligatorisch] Vermeiden Sie die Verwendung desselben Namens und derselben ID auf derselben Seite.
Erklärung:
Der IE-Browser verwechselt die ID- und Namensattribute von Elementen und document.getElementById erhält möglicherweise unerwartete Elemente. Daher müssen Sie bei der Benennung der ID- und Namensattribute von Elementen sehr vorsichtig sein.
Eine bessere Vorgehensweise besteht darin, unterschiedliche Nomenklaturen für ID und Name zu verwenden.
Beispiel:
<input name="foo"> <div id="foo"></div> <script> // IE6 将显示 INPUT alert(document.getElementById('foo').tagName); </script>
2.3 Tags
[Obligatorisch] Tag-Namen müssen Kleinbuchstaben enthalten.
Beispiel:
<!-- good --> <p>Hello StyleGuide!</p> <!-- bad --> <P>Hello StyleGuide!</P>
[Pflichtfeld] Bei Etiketten, die kein Selbstschließen erfordern, ist das Selbstschließen nicht zulässig.
Erklärung:
Zu den gängigen Tags, die kein Selbstschließen erfordern, gehören input, br, img, hr usw.
Beispiel:
<!-- good --> <input type="text" name="title"> <!-- bad --> <input type="text" name="title" />
[Obligatorisch] Bei schließenden Tags, die in HTML5 weggelassen werden dürfen, ist das Weglassen von schließenden Tags nicht zulässig.
Erklärung:
Ausnahmen können in Szenarien mit sehr strengen Anforderungen an die Codegröße gemacht werden. Zum Beispiel: das von Seiten Dritter verwendete Liefersystem.
Beispiel:
<ul> <li>first</li> <li>second</li> </ul>
- first
- second
[Obligatorisch] Die Tag-Nutzung muss den Tag-Verschachtelungsregeln entsprechen.
Erklärung:
Zum Beispiel darf div nicht in p platziert werden und tbody muss in der Tabelle platziert werden.
Detaillierte Regeln zur Tag-Verschachtelung finden Sie im Abschnitt zur Elementdefinition in der HTML-DTD.
[Empfehlung] Die Verwendung von HTML-Tags sollte der Semantik der Tags folgen.
Erklärung:
Die folgenden sind gängige Tag-Semantiken:
ins – einfügen- del – löschen
- abbr – Abkürzung
- code – Code-Identifikation
- cite – den Titel des Quellwerks zitieren
- q – zitieren
- ul - Ungeordnete Liste
- ol - Geordnete Liste
- dl,dt,dd - Definitionsliste
- Beispiel:
- [Vorschlag] Die gleiche Anforderung kann in CSS erreicht werden sollen. Tabellen dürfen nicht für das Layout verwendet werden. Erklärung:
- Semantische Korrektheit sollte so weit wie möglich beibehalten werden, sofern die Kompatibilität dies zulässt. Ausnahmen sind für Szenarien mit strengen Anforderungen an die Rasterausrichtung und Dehnbarkeit zulässig, beispielsweise komplexe Formulare mit mehreren Spalten. [Empfehlung] Die Verwendung von Tags sollte so prägnant wie möglich sein und unnötige Tags reduzieren.
- Beispiel:
<!-- good --> <img src="image.png"> <!-- bad --> <span> <img src="image.png"> </span>
Nach dem Login kopieren2.4 Attribute
<!-- good --> <p>Esprima serves as an important <strong>building block</strong> for some JavaScript language tools.</p> <!-- bad --> <div>Esprima serves as an important <span>building block</span> for some JavaScript language tools.</div>
<!-- good --> <table cellspacing="0">...</table> <!-- bad --> <table cellSpacing="0">...</table>
<!-- good --> <script src="esl.js"></script> <!-- bad --> <script src='esl.js'></script> <script src=esl.js></script>
<input type="text" disabled> <input type="checkbox" value="1" checked>
<ol data-ui-type="Select"></ol>
3.1 DOCTYPE
[强制] 使用 HTML5 的 doctype 来启用标准模式,建议使用大写的 DOCTYPE。
示例:
<!DOCTYPE html>
[建议] 启用 IE Edge 模式。
示例:
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
[建议] 在 html 标签上设置正确的 lang 属性。
解释:
有助于提高页面的可访问性,如:让语音合成工具确定其所应该采用的发音,令翻译工具确定其翻译语言等。
示例:
<html>
3.2 编码
[强制] 页面必须使用精简形式,明确指定字符编码。指定字符编码的 meta 必须是 head 的第一个直接子元素。
解释:
见 HTML5 Charset能用吗 一文。
示例:
<html> ...... ......