English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
:
后应该插入一个空格。box-shadow
).rgb()
、rgba()
、hsl()
、hsla()
或 rect()
值的内部的逗号后面插入空格。这样利于从多个属性值(既加逗号也加空格)中区分多个颜色值(只加逗号,不加空格)。.5
代替 0.5
;-.5px
代替 -0.5px
).#fff
。在扫描文档时,小写字符易于分辨,因为他们的形式更易于区分。#fff
代替 #ffffff
.input[type="text"]
.只有在某些情况下是可选的,但是,为了代码的一致性,建议都加上双引号。margin: 0;
代替 margin: 0px;
.对于这里用到的术语有疑问吗?请参考 Wikipedia 上的 层叠样式表 - 语法.
/* Bad CSS */ .selector, .selector-secondary, .selector[type=text] { padding:15px; margin:0px 0px 15px; background-color:rgba(0, 0, 0, 0.5); box-shadow:0px 1px 2px #CCC,inset 0 1px 0 #FFFFFF } /* Good CSS */ .selector, .selector-secondary, .selector[type="text"] { padding: 15px; margin-bottom: 15px; background-color: rgba(0,0,0,.5); box-shadow: 0 1px 2px #ccc, inset 0 1px 0 #fff; }
相关的属性声明应当归为一组,并按照下面的顺序排列:
由于定位(positioning)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。盒模型排在第二位,因为它决定了组件的尺寸和位置。
其他属性只是影响组件的内部(inside)oder beeinflussen die ersten beiden Attribute nicht, daher werden sie am Ende platziert.
Die vollständige Eigenschaftsliste und die Reihenfolge thereof finden Sie bitte in Rückzug.
.erklärung-auftrag { /* Positionierung */ position: absolut; oben: 0; rechts: 0; unten: 0; links: 0; z-index: 100; /* Box-Modell */ display: block; float: right; width: 100px; height: 100px; /* Typografie */ schrift: normal 13px "Helvetica Neue", sans-serif; line-height: 1.5; color: #333; text-ausrichten: center; /* Visuell */ background-color: #f5f5f5; border: 1px solid #e5e5e5; border-radius: 3px; /* Sonstiges */ opacity: 1; }
@import
mit <link>
Schaltflächen im Vergleich zu@import
Anweisungen sind viel langsamer, nicht nur zusätzliche Anfragen hinzufügen, sondern auch unerwartete Probleme verursachen. Ersatz gibt es in mehreren Formen:
<link>
ElementBitte beziehen Sie sich auf Artikel von Steve SoudersErfahren Sie mehr.
<!-- Verwenden Sie Link-Elemente --> <link rel="stylesheet" href="core.css"> <!-- Vermeiden Sie @imports --> <style> @import url("more.css"); </style>
Platzieren Sie die Medienabfragen in der Nähe der am besten geeigneten Regeln. Packen Sie sie nicht in eine einzelne Stilebene oder am Ende der Dokumente. Wenn Sie sie getrennt aufbewahren, werden sie in der Zukunft vergessen. Hier ist ein typisches Beispiel.
.element { ... } .element-avatar { ... } .element-selected { ... } @media (min-width: 480px) { .element { ...} .element-avatar { ... } .element-selected { ... } }
Wenn spezifische Hersteller Attribute mit Präfix verwenden, lassen Sie durch Einklappen die Werte jeder Eigenschaft vertikal ausgerichtet sein, um die Mehrzeilen-Editierung zu erleichtern.
In Textmate wird verwendet Text → Bearbeiten Sie jede Zeile in der Auswahl (⌃⌘A). In Sublime Text 2 wird, verwenden Sie Auswahl → Hinzufügen der vorherigen Zeile (⌃⇧↑) und Auswahl → Hinzufügen der nächsten Zeile (⌃⇧↓)).
/* Vorgeschlagene Eigenschaften */ .selector { -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.15); box-shadow: 0 1px 2px rgba(0,0,0,.15); }
FürEnthält nur eine DeklarationStil, um Lesbarkeit und schnelle Bearbeitung zu erleichtern, wird empfohlen, Anweisungen in einer Zeile zu platzieren. Für Stile mit mehreren Deklarationen sollten die Deklarationen in Zeilen aufgeteilt werden.
Der Schlüssel dazu ist die Fehlerdetektion -- Zum Beispiel weist der CSS-Prüfer darauf hin, dass in 183 Eine Zeile hat einen Syntaxfehler. Wenn es sich um eine Zeile mit einer einzigen Regeldeklaration handelt, werden Sie diesen Fehler nicht übersehen; wenn es sich um eine Zeile mit mehreren Regeldeklarationen handelt, müssen Sie sorgfältig analysieren, um sicherzustellen, dass keine Fehler übersehen werden.
/* Einzelne Deklarationen auf einer Zeile */ .span1 { width: 60px; } .span2 { width: 140px; } .span3 { width: 220px; } /* Mehrere Deklarationen, eine pro Zeile */ .sprite { display: inline-block; width: 16px; height: 15px; background-image: url(../img/sprite.png); } .icon { background-position: 0 0; } .icon-home { background-position: 0 -20px; } .icon-account { background-position: 0 -40px; }
Bei der Notwendigkeit, alle Werte explizit zu setzen, sollte die Verwendung von Kurzschreibattributdeklarationen begrenzt werden. Beispiele für häufige Missbräuche von Kurzschreibattributdeklarationen sind wie folgt:
padding
margin
font
background
border
border-radius
In den meisten Fällen benötigen wir nicht alle Werte für die Kurzschreibattributdeklarationen anzugeben. Zum Beispiel benötigen die heading-Elemente von HTML nur die Werte für den oberen und unteren Abstand (margin), daher ist es ausreichend, diese beiden Werte zu überschreiben. Übermäßige Verwendung von Kurzschreibattributdeklarationen kann zu einem Durcheinander im Code führen und unnotwendige Überschreibungen der Attributwerte verursachen, die unerwartete Nebenwirkungen verursachen können.
MDN (Mozilla Developer Network) ein sehr gutes Dokument übershorthand properties Artikel, die für Benutzer nützlich sind, die sich nicht mit den Kurzschreibattributdeklarationen und deren Verhalten auskennen.
/* Schlechter Beispiel */ .element { margin: 0 0 10px; background: red; background: url("image.jpg"); border-radius: 3px 3px 0 0; } /* Guter Beispiel */ .element { margin-bottom: 10px; background-color: red; background-image: url("image.jpg"); border-top-left-radius: 3px; border-top-right-radius: 3px; }
Vermeiden Sie unnötige Einrückungen. Dies liegt daran, dass Sie zwar Einrückungen verwenden können, aber es nicht bedeutet, dass Sie sie unbedingt verwenden sollten. Verwenden Sie Einrückungen nur, wenn Sie die Styles auf den übergeordneten Elementen beschränken müssen (also Nachkommen-Selektoren) und wenn mehrere Elemente zu einrücken sind.
// Ohne Einrückung .table > thead > tr > th { … } .table > thead > tr > td { … } // Mit Einrückung .table > thead > tr { > th { … } > td { … } }
Code wird von Menschen geschrieben und gepflegt. Stellen Sie sicher, dass Ihr Code selbstbeschreibend, gut kommentiert und leicht verständlich für andere ist. Gute Code-Kommentare können den Kontext und die Absicht des Codes vermitteln. Vermeiden Sie das einfache Wiederholen von Komponenten- oder class-Namen.
Für längere Kommentare sollten vollständige Sätze geschrieben werden; für allgemeine Notizen können kurze Phrasen verwendet werden.
/* Schlechter Beispiel */ /* Modalkopf */ .modal-header { ... } /* Guter Beispiel */ /* Verpackungselement für .modal-title und .modal-close */ .modal-header { ... }
.btn
und .btn-danger
)..btn
stellt button, aber .s
Der Name sollte keine Bedeutung vermitteln..js-*
class zur Kennzeichnung von Verhalten (im Gegensatz zu Stilen) und vermeiden Sie es, diese class in CSS-Dateien zu enthalten.Bei der Benennung von Sass- und Less-Variablen können auch die oben genannten Normen berücksichtigt werden.
/* Schlechter Beispiel */ .t { ... } .red { ... } .header { ... } /* Guter Beispiel */ .tweet { ... } .important { ... } .tweet-header { ... }
[class^="..."]
)。Die Leistung des Browsers wird durch diese Faktoren beeinflusst.Weiterführende Lektüre:
/* Schlechter Beispiel */ span { ... } .page-container #stream .stream-item .tweet .tweet-header .username { ... } .avatar { ... } /* Guter Beispiel */ .avatar { ... } .tweet-header .username { ... } .tweet .avatar { ... }
/* * Abschnittsüberschrift der Komponente */ .element { ... } /* * Abschnittsüberschrift der Komponente * * Manchmal müssen Sie optionalen Kontext für die gesamte Komponente einschließen. Tun Sie dies hier oben, wenn es wichtig genug ist. */ .element { ... } /* Kontextuelle Unter-Komponente oder Modifikator */ .element-heading { ... }
Richten Sie Ihren Editor nachfolgend ein, um häufige Unstimmigkeiten und Unterschiede im Code zu vermeiden:
Refer to the documentation and add these configuration information to the .editorconfig
. For example:Bootstrap .editorconfig example files. More information can be found in about EditorConfig.