HTML-Codierungsspezifikation
Das Ziel dieses Dokuments ist es, den HTML-Codestil konsistent und leicht verständlich und pflegerisch zu gestalten Wenn Sie diese Angewohnheit nicht haben, wählen Sie bitte Ihre IDE sorgfältig aus und verwenden Sie keinen „Texteditor“ mehr.
1 Codestil
1.1 Einrückung und Zeilenumbrüche
[Obligatorisch] Verwenden Sie 4 Leerzeichen als Einzug. Ebene, 2 Leerzeichen oder Tabulatorzeichen sind nicht zulässig.
Beispiel:
<ul> <li>first</li> <li>second</li> </ul>
[Empfehlung] Maximal 120 Zeichen pro Zeile.
Erklärung:
Zu langer Code ist nicht einfach zu lesen und zu pflegen. In Anbetracht der Besonderheiten von HTML gibt es jedoch keine strengen Anforderungen. Sublime, PHPstorm, Wenstorm usw. verfügen alle über Linealfunktionen.
1.2 Benennung
[Obligatorisch] Die Klasse muss ausschließlich aus Kleinbuchstaben bestehen und Wörter müssen durch - getrennt werden.
[Obligatorisch] 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.
[Vorschlag] Es wird empfohlen, alle Wörter in id 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>
[Pflichtfeld] 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 gute 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>
1.3 Tags
[Obligatorisch] Tag-Namen müssen Kleinbuchstaben enthalten.
Beispiel:
<!-- good --> <p>Hello StyleGuide!</p> <!-- bad --> <P>Hello StyleGuide!</P>
[Obligatorisch] Selbstschließen ist nicht für Tags zulässig, die nicht selbstschließend sein müssen.
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 des schließenden Tags nicht zulässig.
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.
Beispiel:
<!-- good --> <div><h1><span></span></h1></div> <a href=""><span></span></a> <!-- bad --> <span><div></div></span> <p><div></div></p> <h1><div></div></h1> <h6><div></div></h6> <a href="a.html"><a href="a.html"></a></a>
[Empfehlung] Die Verwendung von HTML-Tags sollte der Semantik der Tags folgen.
Erklärung:
Die folgenden sind gängige Tag-Semantiken
p - 段落 h1,h2,h3,h4,h5,h6 - 层级标题 strong,em - 强调 ins - 插入 del - 删除 abbr - 缩写 code - 代码标识 cite - 引述来源作品的标题 q - 引用 blockquote - 一段或长篇引用 ul - 无序列表 ol - 有序列表 dl,dt,dd - 定义列表
Beispiel:
<!-- 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>
[Empfehlung] Tabellen sollten nicht verwendet werden, wenn CSS dasselbe erreichen kann Anforderung Erstellen Sie das Layout.
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>
1.4 Attribute
[Obligatorisch] Attributnamen müssen Kleinbuchstaben verwenden.
Beispiel:
<!-- good --> <table cellspacing="0">...</table> <!-- bad --> <table cellSpacing="0">...</table>
[Obligatorisch] Attributwerte müssen in doppelte Anführungszeichen gesetzt werden.
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:
<!-- good --> <input type="text" disabled> <input type="checkbox" value="1" checked> <!-- bad --> <input type="text" disabled="disabled"> <input type="checkbox" value="1" checked="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>
2 Generic
2.1 DOCTYPE
[Obligatorisch] HTML5-Doctype verwenden Um den Standardmodus zu aktivieren, wird empfohlen, DOCTYPE in Großbuchstaben zu verwenden.
Beispiel:
<!DOCTYPE html>
[Empfohlen] Aktivieren Sie den IE Edge- und Chrome Frame-Modus.
Beispiel:
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
[Vorschlag] Legen Sie das richtige lang-Attribut für das HTML-Tag fest.
Erklärung:
trägt dazu bei, die Zugänglichkeit der Seite zu verbessern, z. B. indem das Sprachsynthesetool die zu verwendende Aussprache bestimmen lässt, das Übersetzungstool die Sprache der Übersetzung bestimmen kann usw.
Beispiel:
<html>
[Empfehlung] Aktivieren Sie den Webkit-Kernel des Dual-Core-Browsers zum Rendern.
Erklärung:
Siehe den Dokumentationsartikel zum Browser-Kernel-Control-Meta-Tag.
Beispiel:
<meta name="renderer" content="webkit">
[Empfehlung] Aktivieren Sie DNS-Prefetching im Browser.
Erklärung:
Reduzieren Sie die Anzahl der DNS-Anfragen und rufen Sie DNS vorab ab.
Beispiel:
<link rel="dns-prefetch" href="//global.zuzuche.com/"> <link rel="dns-prefetch" href="//imgcdn1.zuzuche.com/"> <link rel="dns-prefetch" href="//qiniucdn.com/">
2.2 Kodierung
[Obligatorisch] Die Seite muss die komprimierte Form verwenden und die Zeichenkodierung explizit angeben. Das Meta, das die Zeichenkodierung angibt, muss das erste direkte untergeordnete Element von head sein.
Erklärung:
Siehe den Artikel Kann HTML5-Zeichensatz verwendet werden?
Beispiel:
<html> ...... ......