CSS
CSS-Entwurfsmuster
Suche…
Einführung
Diese Beispiele dienen der Dokumentation von CSS-spezifischen Entwurfsmustern wie BEM , OOCSS und SMACSS .
Diese Beispiele dienen NICHT zum Dokumentieren von CSS-Frameworks wie Bootstrap oder Foundation .
Bemerkungen
Diese Beispiele dienen der Dokumentation von CSS-spezifischen Methoden / Entwurfsmustern.
Diese Methoden umfassen Folgendes, sind jedoch nicht ausschließlich:
Diese Beispiele dienen NICHT zum Dokumentieren von CSS-Frameworks wie Bootstrap oder Foundation . Sie können zwar Beispiele für die Anwendung eines oder mehrerer CSS-Methoden / Designmuster in einem CSS-Framework hinzufügen, diese Beispiele konzentrieren sich jedoch auf die Methodologien / Designmuster mit diesem speziellen Framework und auf die Verwendung des Frameworks selbst.
BEM
BEM steht für Blocks, Elements and Modifiers
. Diese Methode wurde ursprünglich vom russischen Technologieunternehmen Yandex konzipiert , erlangte jedoch auch bei amerikanischen und westeuropäischen Webentwicklern eine gewisse Wirkung.
Wie das Gleiche impliziert, geht es bei der BEM-Methode um die Komponentisierung Ihres HTML- und CSS-Codes in drei Arten von Komponenten:
Blöcke: eigenständige Objekte, die eigenständig Bedeutung haben
Beispiele sind
header
,container
,menu
,checkbox
undtextbox
Elemente: Teil von Blöcken, die keine eigenständige Bedeutung haben und semantisch an ihre Blöcke gebunden sind.
Beispiele sind
menu item
,list item
,checkbox caption
undheader title
Modifikatoren: Markierungen für einen Block oder ein Element, mit denen das Aussehen oder Verhalten geändert werden soll
Beispiele hierfür sind
disabled
,highlighted
,checked
,fixed
,size big
undcolor yellow
Das Ziel von BEM ist es, die Lesbarkeit, Wartbarkeit und Flexibilität Ihres CSS-Codes zu optimieren. Um dies zu erreichen, müssen Sie die folgenden Regeln anwenden.
- Blockstile sind niemals von anderen Elementen auf einer Seite abhängig
- Blöcke sollten einen einfachen, kurzen Namen haben und
_
oder-
Zeichen vermeiden - Verwenden Sie bei der
blockname__elementname
Elementen Selektoren des Formatsblockname__elementname
- Verwenden Sie beim
blockname--modifiername
Selektoren für das Formatblockname--modifiername
undblockname__elementname--modifiername
- Elemente oder Blöcke, die über Modifizierer verfügen, sollten alles von dem Block oder Element erben, der geändert wird, mit Ausnahme der Eigenschaften, die der Modifizierer ändern soll
Code-Beispiel
Wenn Sie BEM auf Ihre Formularelemente anwenden, sollten Ihre CSS-Selektoren in etwa wie folgt aussehen:
.form { } // Block
.form--theme-xmas { } // Block + modifier
.form--simple { } // Block + modifier
.form__input { } // Block > element
.form__submit { } // Block > element
.form__submit--disabled { } // Block > element + modifier
Das entsprechende HTML sollte ungefähr so aussehen:
<form class="form form--theme-xmas form--simple">
<input class="form__input" type="text" />
<input class="form__submit form__submit--disabled" type="submit" />
</form>