1.ID-Regeln
2.Klassenregeln
3. Tag-Regeln
4. Das allgemeine Verständnis von Effizienz stammt aus „High-Performance Website Construction“, veröffentlicht von Steve Souders 2009 Beginnend mit „Advanced Guide“, obwohl das Buch ausführlicher auflistet, können Sie die vollständige Referenzliste auch hier einsehen, oder Sie können weitere Details in Googles „Best Practices for Efficient CSS Selectors“ einsehen.
In diesem Artikel möchte ich einige einfache Beispiele und Richtlinien vorstellen, die ich beim Schreiben von Hochleistungs-CSS verwende. Diese basieren auf dem von MDN verfassten Leitfaden für effizientes CSS und folgen einem ähnlichen Format.
1. Vermeiden Sie übermäßige Zurückhaltung
Als allgemeine Regel gilt: Fügen Sie keine unnötigen Einschränkungen hinzu.
// Ups
ul#someid {... >
2. Der Nachkommenselektor ist der schlechteste
Der HTML-Code und der CSS-Code sind nicht nur stark gekoppelt Wenn sich die Struktur des HTML-Codes ändert, muss auch das CSS geändert werden. Besonders in großen Unternehmen sind die Leute, die HTML und CSS schreiben, oft nicht die gleichen.
Code kopieren
Der Code lautet wie folgt:
// Es ist scheiße
html div tr td {..}
3. Vermeiden Sie Kettenselektoren (Kreuzungsselektoren)
Dies ähnelt der Situation der Überbeschränkung. Ein sinnvollerer Ansatz besteht darin, einfach einen neuen CSS-Klassenselektor zu erstellen.
Code kopieren
Der Code lautet wie folgt:
4. Halten Sie sich an das KISS-Prinzip
Stellen Sie sich vor, wir haben das folgende DOM:
Code kopieren
Der Code lautet wie folgt:
Im Folgenden sind die entsprechenden Regeln aufgeführt...
Kopieren Sie den Code
Der Code lautet wie folgt:
5. Verwenden Sie zusammengesetzte (kompakte) Syntax
Verwenden Sie wann immer möglich zusammengesetzte Syntax.
Code kopieren
Der Code lautet wie folgt:
Hintergrundbild : url( ../imgs/carrot.png);
Hintergrundposition: unten;
Hintergrundwiederholung: Wiederholung-x;
}
// Okay
. someclass {
padding: 20px 10px 20px 10px;
Hintergrund: #000 url(../imgs/carrot.png) Repeat-x unten;
}
6. Vermeiden Sie unnötige Namespaces
Kopieren Sie den Code
Der Code lautet wie folgt:
7. Vermeiden Sie unnötige Wiederholungen
Kombinieren Sie wiederholte Regeln so weit wie möglich.
Code kopieren
Der Code lautet wie folgt:
// Ups
.someclass {
Farbe: rot;
Hintergrund: blau;
Schriftgröße: 15px;
}
.otherclass {
Farbe: rot;
Hintergrund: blau;
Schriftgröße: 15px;
}
// Okay
.someclass, . otherclass {
Farbe: rot;
Hintergrund: blau;
Schriftgröße: 15px;
}
8. Optimieren Sie die Regeln so weit wie möglich Basierend auf den oben genannten Regeln können Sie wiederholte Regeln in verschiedenen Kategorien weiter zusammenführen.
// Ups
.someclass {
Farbe: Rot;
Hintergrund: Blau;
Höhe: 150px;
Breite: 150px;
Schriftgröße: 16px;
}
.otherclass {
Farbe: rot;
Hintergrund: blau;
Höhe: 150px;
Breite: 150px;
Schriftgröße: 8px;
}
// Okay
.someclass, .otherclass {
Farbe: Rot;
Hintergrund: Blau;
Höhe: 150px;
Breite: 150px;
}
.someclass {
Schriftgröße: 16px;
}
.otherclass {
Schriftgröße: 8px;
}
9 Mehrdeutigkeit Die Namenskonvention von verwendet am besten semantische Namen. Ein guter CSS-Klassenname sollte beschreiben, was er ist, und nicht, wie er aussieht.
10. Vermeiden Sie !importantsTatsächlich sollten Sie auch andere hochwertige Selektoren verwenden können.
11. Befolgen Sie eine Standard-Deklarationsreihenfolge
Obwohl es einige gängige Methoden zum Anordnen der CSS-Eigenschaftsreihenfolge gibt, ist unten eine beliebte Methode aufgeführt, der ich folge.
.someclass {
/* Positionierung */
/* Display & Box-Modell */
/* Hintergrund- und Typografiestile */
/* Übergänge */
/* Andere */
}
12. Gut organisiertes Codeformat Die Lesbarkeit des Codes ist direkt proportional zur Einfachheit der Wartbarkeit. Unten ist die Formatierungsmethode aufgeführt, der ich folge.
// Ups
.someclass- a, .someclass-b, .someclass-c, .someclass-d {
...
}
// Okay
.someclass-a,
.someclass- b,
.someclass-c,
.someclass-d {
...
}
// Gute Praxis
.someclass {
Hintergrundbild :
Linear-Gradient (#000, #ccc),
Linear-Gradient (#CCC, #DDD);
Box-Shadow:
2px 2px 2px #000,
1px 4px 1px 1px 1px #ddd eingefügt;
}
Natürlich sind dies nur ein paar Regeln, die ich in meinem eigenen CSS zu befolgen versuche, um effizienter und wartbarer zu sein. Wenn Sie mehr lesen möchten, empfehle ich die Lektüre von MDNs Guide to Writing Efficient CSS und Googles Guide to Optimizing Browser Rendering.