Welche Informationen möchten Sie erhalten, wenn Sie eine Klasse sehen?
An diesem Punkt möchten Sie, dass diese Klasse alle oben genannten Probleme auf einen Blick löst, und BEM lohnt sich. Was ist BEM BEM (Block, Element, Modifier) ist eine Front-End-Benennungsmethode für die komponentenbasierte Webentwicklung, hauptsächlich für CSS. Die Idee dahinter besteht darin, die Benutzeroberfläche in unabhängige Teile aufzuteilen. Dies macht die Schnittstellenentwicklung selbst bei komplexen Benutzeroberflächen einfach und schnell und ermöglicht die Wiederverwendung vorhandenen Codes ohne Kopieren und Einfügen. Vorteile
So verwenden Sie BEM Block Eine funktional unabhängige Seitenkomponente, die wiederverwendet werden kann Blöcke sollten ihre Umgebung nicht beeinflussen, das heißt, Sie sollten weder die äußere Geometrie (Ränder) noch die Position des Blocks festlegen. <!-- Gut --> <div Klasse = "Header" > </div > <!-- schlecht roter Text soll das Aussehen beschreiben --> <div Klasse = "roter Text" > </div> Element Zusammengesetzter Teil eines Blocks, kann nicht allein verwendet werden Die Struktur des vollständigen Namens des Elements lautet Blockname__Elementname <!-- Block `Suchformular` --> <form class="Suchformular"> <!-- `Eingabeschaltfläche`-Element im `Suchformular`-Block --> <input class="Suchformular__input"> <button class="search-form__button">Suchen</button> </form> Ein Element ist immer Teil eines Blocks und nicht eines anderen Elements. Elementnamen können daher nicht als Hierarchie von block__elem1__elem2 definiert werden. <!-- Gut Folgen Sie `block-name__element-name` --> <form class="Suchformular"> <div Klasse="Suchformular__Inhalt"> <input class="Suchformular__input"> <button class="search-form__button">Suchen</button> </div> </form> <!-- schlecht „search-form__content__button“ folgt nicht „block-name__element-name“ --> <form class="Suchformular"> <div Klasse="Suchformular__Inhalt"> <input class="Suchformular__Inhalt__Input"> <button class="search-form__content__button">Suchen</button> </div> </form> Das Element ist immer Teil eines Blocks und Sie sollten es nicht getrennt vom Block verwenden. <form class="Suchformular"> <!-- Gut Das Element befindet sich innerhalb des Blocksuchformulars --> <input class="Suchformular__input"> <button class="search-form__button">Suchen</button> </form> <form class="search-form"></form> <!-- schlecht Das Element befindet sich nicht im Blocksuchformular --> <input class="Suchformular__input"> <button class="search-form__button">Suchen</button> Modifikator Eine Entität, die das Aussehen, den Zustand oder das Verhalten eines Blocks oder Elements definiert Zwei Arten von Modifikatoren Boolescher Wert Der Aufbau des vollständigen Namens eines Modifikators folgt folgendem Muster:
<form class="Suchformular Suchformular_fokussiert"> <input class="Suchformular__input"> <!-- 'deaktiviert' ist ein Element von 'Schaltfläche' --> <button class="search-form__button search-form__button_disabled">Suchen</button> </form> Schlüsselwert Der Aufbau des vollständigen Namens eines Modifikators folgt folgendem Muster:
<form class="Suchformular Suchformular_Thema_Inseln"> <input class="Suchformular__input"> <!-- Gut Der Wert des Modifikators `size` von `button` ist `m` --> <button class="search-form__button search-form__button_size_m">Suchen</button> </form> <form class="Suchformular Suchformular_Themeninseln Suchformular_Thema_Lite"> <input class="Suchformular__input"> <!-- schlecht Sie können nicht zwei verschiedene Werte desselben Modifikators gleichzeitig verwenden --> <button class="Suchformular__button Suchformular__Schaltflächengröße_s Suchformular__Schaltflächengröße_m"> </button> </form> Ein Modifikator kann nicht isoliert von dem Block oder Element verwendet werden, das er modifiziert. Modifikatoren sollten das Aussehen, das Verhalten oder den Zustand einer Entität ändern, nicht ersetzen. <!-- Gut --> <form class="Suchformular Suchformular_Thema_Inseln"> <input class="Suchformular__input"> <button class="search-form__button">Suchen</button> </form> <!-- schlecht Blockname „Suchformular“ fehlt --> <form class="search-form_theme_islands"> <input class="Suchformular__input"> <button class="search-form__button">Suchen</button> </form> Vorteile des Hinzufügens von Blocknamen zu Modifikatoren und Elementnamen
Wann sollten Sie BEM einsetzen?
.verstecken { Anzeige: keine !wichtig; } Namenskonventionen Doppelter Unterstreichungsstil
CamelCase-Stil
React-Benennungsparadigma
Keine Namespace-Stile
Allgemeine CSS-Benennung Beispiel Vant-Komponenten-CSS-Benennung Der verwendete Benennungsstil ist der doppelte Unterstrich: Blockname__Elementname-Modifikatorname <div Klasse="van-doc"> <div Klasse="van-doc-header"> <div Klasse="von-doc-row"> <div Klasse="van-doc-header__top"> <a class="van-doc-header__logo">Suche</a> <ul Klasse="van-doc-header__top-nav"> <li Klasse="van-doc-header__top-nav-item"> <a class="van-doc-header__logo-link"> </li> </ul> </div> </div> </div> <div Klasse="van-doc-container van-doc-row van-doc-container--mit-Simulator"> ...... </div> </div> Weui-Komponenten-CSS-Benennung Die verwendete Benennung ist der React-Benennungsstil: block-name__element-name_modifier-name <div Klasse="Seitenschaltfläche js_show"> <div Klasse="page__hd"> <h1 class="page__title">Schaltfläche</h1> <p class="page__desc">Schaltfläche</p> </div> <div Klasse="page__bd"> <div Klasse="button-sp-area"> <a class="weui-btn weui-btn_primary">Hauptbedienung der Seite</a> <a class="weui-btn weui-btn_loading">Hauptvorgang der Seite</a> <a class="weui-btn weui-btn_disabled>Hauptbedienung der Seite</a> <a class="weui-btn weui-btn_default">Sekundäre Seitenoperationen</a> <a class="weui-btn weui-btn_warn">Warnvorgänge</a> </div> .... <div Klasse="button-sp-area Zelle"> BEM Spezifikationsvalidierungstool Stylelint-Selektor-BEM-Muster Dies ist das Ende dieses Artikels über die Verwendung von BEM-Namensstandards in CSS. Weitere relevante CSS-BEM-Namensstandards finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die verwandten Artikel weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! |
<<: Linux-Installation Apache-Server-Konfigurationsprozess
>>: Details zum MySQL-Index-Pushdown
Die SQL-Optimierung von Datenbanken ist ein häufi...
Lösung für MySQLSyntaxErrorException beim Herstel...
In Bezug auf das leistungsstarke verteilte Speich...
Inhaltsverzeichnis Vorwort 1. Der Prozess der Ver...
Inhaltsverzeichnis 1. MySQL-Datenstruktur 2. Die ...
1. Datenbanken und Datenbankinstanzen Beim Studiu...
Im Vorstellungsgespräch sollten Sie folgende Szen...
1. Big Data und Hadoop Um Big Data zu studieren u...
Inhaltsverzeichnis 1. Dateien mit Skript-Tags imp...
1. Nach dem Betreten des Containers Katze /etc/ho...
Dieser Artikel beschreibt, wie Sie mit der lokale...
1. kein Aufhebens Führen Sie das Programm so aus,...
Die Hauptfunktion des Browsermoduls besteht darin...
Was ist der Zweck dieses Satzes? Code kopieren Der...
Inhaltsverzeichnis Einführung Erste Schritte Eine...