Heim > Artikel > Web-Frontend > 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>
[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ügenBlockzitat - ein Absatz oder ein langes Zitat
<!-- 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 --> <img src="image.png"> <!-- bad --> <span> <img src="image.png"> </span>
<!-- good --> <table cellspacing="0">...</table> <!-- bad --> <table cellSpacing="0">...</table>[Obligatorisch] Der Attributwert muss in doppelte Anführungszeichen gesetzt werden (ausgenommen Komponentenbibliotheken wie iView und Element). Erklärung: Einfache Anführungszeichen sind nicht zulässig, und es sind keine Anführungszeichen zulässig. Beispiel:
<!-- good --> <script src="esl.js"></script> <!-- bad --> <script src='esl.js'></script> <script src=esl.js></script>[Empfehlung] Für Attribute vom Typ Boolean wird empfohlen, keine Attributwerte hinzuzufügen. Beispiel:
<input type="text" disabled> <input type="checkbox" value="1" checked>[Empfehlung] Es wird empfohlen, benutzerdefinierten Attributen das Präfix „xxx-“ und „data-“ voranzustellen. Erklärung: Die Verwendung von Präfixen hilft dabei, benutzerdefinierte Eigenschaften von standardmäßig definierten Eigenschaften zu unterscheiden. Beispiel:
<ol data-ui-type="Select"></ol>3 Universal
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> ...... ......