1. Was sind CSS-Methoden? Quelle des obigen Bildes: https://2019.stateofcss.com/technologies/ Möglicherweise nehmen Sie sich bei Ihrer täglichen Entwicklung nicht die Zeit, auf CSS-Methoden zu achten und sie zu verstehen. Mit zunehmender Erfahrung können Sie jedoch selbst denken oder den Code anderer lesen und im Internet auf ausgereifte Frameworks zurückgreifen, die mehr oder weniger einige Glanzpunkte der CSS-Methoden enthalten. Die folgenden gängigen CSS-Methoden können Ihnen dabei helfen, den Inhalt zusammenzufassen und zu sortieren. 2. Gängige CSS-Methoden 1. Außerhalb des Büros
(1) Vorschriften 1. Verwenden Sie keine ID, sondern Klasse Verwenden Sie Klassen direkt, um Stile festzulegen. Dies erhöht nicht nur die Semantik, sondern verringert auch die Abhängigkeit von CSS von HTML. 2. Trennung von Struktur und Stil Obwohl in den frühen Jahren von HTML und CSS die Trennung von Struktur und Stil erreicht wurde, gibt es in CSS immer noch zwei Arten von Stilen:
Daher empfiehlt OOCSS, diese beiden Stile zu trennen. Beispielsweise gibt es drei Schaltflächen, weiß/grün/rot, die wie folgt definiert werden können: Klasse="btn btn-default" Klasse="btn btn-grün" Klasse="btn btn-rot" Wenn Sie wirklich viele violette Schaltflächen haben, können Sie eine separate Klasse für violette Schaltflächen erstellen. Dadurch kann die Menge an CSS-Code erheblich reduziert werden. 3. Trennung von Behälter und Inhalt Inhalte sollten nie auf einen bestimmten Container beschränkt bleiben und müssen zur Wiederverwendung freigegeben werden. # Falsche Art, header.action zu schreiben { } .header .aktion .login { } .header .aktion .register { } # Richtige Schreibweise von .header{ } .Aktion{ } .Anmelden { } .registrieren { } Vererbte Selektoren sind nützlich, da sie durch denselben Namen bedingte Stilkonflikte reduzieren können (diese treten häufig auf, wenn mehrere Personen an einem Projekt zusammenarbeiten). Wir sollten es jedoch nicht überstrapazieren. (2) Vorteile und Nachteile Nutzen:
Mangel:
(3) Beispiele Bootstrap verwendet OOCSS. Zum Beispiel: html <div Klasse='Header'> <ul Klasse='Menü'> <li class='Menüpunkt aktiv'>1</li> <li class='Menüpunkt'>2</li> <li class='Menüpunkt'>3</li> </ul> <div Klasse="Aktion"> <button class="btn btn-login">Anmelden</button> <button class="btn btn-register">Registrieren</button> </div> </div> CSS: .header { } .Speisekarte { } .Menüpunkt { } .item.aktiv { } .Aktion { } .btn { } .btn-login { } .btn-register{ } 2. BEM (1) Inhalt BEM besteht aus drei Teilen:
(2) Regeln 1. Namenskonventionen
In den Standards einiger Unternehmen (wie etwa Tencent) werden doppelte Bindestriche durch einfache Unterstriche ( Beispiel: Demo-HTML: <div Klasse='Header'> <ul Klasse='header__menu'> <li class='header__menu-item--active'>1</li> <li class='header__menu-item'>2</li> <li class='header__menu-item'>3</li> </ul> <div Klasse="header__action"> <button class="header__btn--login">Anmelden</button> <button class="header__btn--register">Registrieren</button> </div> </div> ohne Demo: .header { &__Speisekarte {} &__Menüpunkt {} &__Aktion {} &__btn { &--login {} &--registrieren {} } } 2. Vermeiden Sie Verschachtelung BEM hat höchstens drei Ebenen: B+E+M. Vermeiden Sie daher bitte das Format Der Block hier ist einem Namespace sehr ähnlich. (3) Vorteile und Nachteile Nutzen:
Mangel:
andere: Durch die BEM-Benennung wird der Klassenname länger, nach der GZIP-Komprimierung kann der Bandbreiten-Overhead jedoch ignoriert werden. BEM erlaubt nicht die Verwendung von Tag-Selektoren. Selbst das einfachste li muss als .menu-item geschrieben werden. (4) Praxis Das Framework elementUI von Ele.me ist eine Art BEM, Sie können sich auch die Website company.yandex.ru/ ansehen. 3. SMACSS (1) Vorschriften 1. Kategorisieren von CSS-Regeln Es unterteilt CSS in fünf verschiedene Kategorien: Beispielsweise „CSS zurücksetzen“ und „CSS normalisieren“. Beispielsweise linke und rechte Spalten und Rastersysteme. Beispielsweise eine Produktliste, eine Navigationsleiste. Wiederverwendbar. Beispielsweise der ausgewählte Status. 2. Namensregeln Fügen Sie dem Klassennamen Für die Basis ist kein Präfix erforderlich. Und verwenden Sie Tags anstelle von Klassen und IDs.
Beispiel: <div Klasse="l-box m-profile m-profile--ist-pro-Benutzer"> <img class="m-avatar m-profile__image" /> <p class="m-profile__bio">…</p> </div> (2) Beispiele Online-Demo: https://codepen.io/savemuse/pen/gWVpvd 4. Atomares CSS (1) Beispiel <div className="P(10px) M(20%) Pos(f) Start(50%) Bgc(#fff)" /> Es wird ein spezielles Atomic-CSS-Tool geben, das dabei hilft, den Klassennamen im obigen HTML in normales CSS zu analysieren. (leicht) (2) Vorteile und Nachteile Vorteile: Minimieren Sie CSS-Stile in Komponenten und maximieren Sie die Wiederverwendbarkeit. Nachteil: Dies ist grundsätzlich das Schreiben im Inline-Stil, aber wir verwenden den Klassennamen, um es auszudrücken. (3) Zusammenfassung Dieser Ansatz ist wirklich radikal. Ich kann es im Moment nicht akzeptieren. Abschluss Abgesehen vom radikalen Atomic habe ich die folgenden Vorschläge für die verbleibenden OOCSS/BEM/SMACSS: Ihre jeweiligen Ideen ergänzen sich einerseits und widersprechen andererseits, und sie können in der tatsächlichen Entwicklung in gegenseitigem Abwägen zueinander eingesetzt werden. Sie können alle mit CSS-Präprozessoren (wie less/sass) für eine bessere Effizienz kombiniert werden Durch Vergleichen und Zusammenfassen der oben genannten Vorteile stellen wir fest, dass das Kernproblem, das sie lösen, die Modularität ist. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Erstellen eines FastDFS-Dateisystems in Docker (Tutorial mit mehreren Images)
>>: 14 Möglichkeiten zum Erstellen von Website-Inhalten, die Ihre Besucher fesseln
Drag & Drop ist eine gängige Funktion im Fron...
Ich persönlich bin der Meinung, dass das Entwickl...
Inhaltsverzeichnis 1. HttpGET 2. HTTP POST WebSoc...
Vorwort Wenn in einem relativ komplexen großen Sy...
1. Weltraumregeln Leerzeichen im HTML-Code werden...
Original : http://developer.yahoo.com/performance...
1. <body>-Tag: Wird verwendet, um den Haupt...
Software- und Hardwareumgebung centos7.6.1810 64b...
Implementieren eines responsiven Layouts mit CSS ...
Als Front-End-Affe werden wir, sei es während ein...
In diesem Artikelbeispiel wird der spezifische Co...
MySQL-Fehler: Parameterindex außerhalb des gültig...
Dieser Artikel beschreibt Ihnen, wie Sie MySQL 8....
Inhaltsverzeichnis 1. Geltungsbereich 1. Globaler...
Inhaltsverzeichnis Ergebnisse erzielen Einführung...