CSS
CSS-ontwerppatronen
Zoeken…
Invoering
Deze voorbeelden zijn voor het documenteren van CSS-specifieke ontwerppatronen zoals BEM , OOCSS en SMACSS .
Deze voorbeelden zijn NIET bedoeld voor het documenteren van CSS-frameworks zoals Bootstrap of Foundation .
Opmerkingen
Deze voorbeelden zijn voor het documenteren van CSS-specifieke methoden / ontwerppatronen.
Deze methoden omvatten maar zijn niet exclusief voor het volgende:
Deze voorbeelden zijn NIET bedoeld voor het documenteren van CSS-frameworks zoals Bootstrap of Foundation . Hoewel u voorbeelden kunt toevoegen van het toepassen van een of meer CSS-methodologie / ontwerppatroon met een CSS-framework, moeten die voorbeelden zich concentreren op de methodologieën / ontwerppatronen met dat specifieke framework en op het gebruik van het framework zelf.
BEM
BEM staat voor Blocks, Elements and Modifiers
. Het is een methode die aanvankelijk is bedacht door het Russische technologiebedrijf Yandex , maar die ook behoorlijk wat grip heeft gekregen bij Amerikaanse en West-Europese webontwikkelaars.
Zoals hetzelfde impliceert, draait BEM-metholologie om de componenten van uw HTML- en CSS-code in drie soorten componenten:
Blokken: zelfstandige entiteiten die op zichzelf betekenisvol zijn
Voorbeelden zijn
header
,container
,menu
,checkbox
&textbox
Elementen: onderdeel van blokken die geen zelfstandige betekenis hebben en semantisch aan hun blokken zijn gekoppeld.
Voorbeelden zijn
menu item
,list item
,checkbox caption
&header title
Modifiers: vlaggen op een blok of element, gebruikt om het uiterlijk of gedrag te veranderen
Voorbeelden zijn
disabled
,highlighted
,checked
,fixed
,size big
encolor yellow
Het doel van BEM is om de leesbaarheid, onderhoudbaarheid en flexibiliteit van uw CSS-code te blijven optimaliseren. De manier om dit te bereiken, is door de volgende regels toe te passen.
- Blokstijlen zijn nooit afhankelijk van andere elementen op een pagina
- Blokken moeten een eenvoudige, korte naam hebben en voorkomen
_
of-
tekens - Gebruik bij het stileren van elementen selectors van format
blockname__elementname
- Gebruik bij het stylen van modifiers selectors van de indeling
blockname--modifiername
enblockname__elementname--modifiername
- Elementen of blokken met modificatoren moeten alles erven van het blok of element dat wordt gewijzigd, behalve de eigenschappen die de modificator moet wijzigen
Code voorbeeld
Als u BEM op uw formulierelementen toepast, moeten uw CSS-selectors er ongeveer zo uitzien:
.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
De bijbehorende HTML zou er ongeveer zo uit moeten zien:
<form class="form form--theme-xmas form--simple">
<input class="form__input" type="text" />
<input class="form__submit form__submit--disabled" type="submit" />
</form>