Traditionell werden if/else-Bedingungen in CSS nicht nativ unterstützt. Es gibt jedoch verschiedene Ansätze, um einen bedingten Stil zu erreichen.
Eine Methode besteht darin, CSS-Klassen zu verwenden, um verschiedene Stile für verschiedene Bedingungen zu definieren. Sie könnten beispielsweise zwei Klassen erstellen:
<p class="normal">Text</p> <p class="active">Text</p>
Und in Ihrer CSS-Datei:
p.normal { background-position: 150px 8px; } p.active { background-position: 4px 8px; }
Dieser Ansatz wird weithin unterstützt und ermöglicht die Laufzeitauswertung von Bedingungen.
CSS-Präprozessoren wie Sass stellen bedingte Anweisungen bereit, mit denen Sie Code schreiben können wie:
$type: monster; p { @if $type == ocean { color: blue; } @else if $type == matador { color: red; } @else if $type == monster { color: green; } @else { color: black; } }
Dies bietet zwar mehr Flexibilität, erfordert jedoch eine Vorverarbeitung, die sich auf die Leistung auswirken kann.
Benutzerdefinierte Eigenschaften, unterstützt ermöglichen in modernen Browsern die Laufzeitauswertung von Bedingungen. Sie könnten eine benutzerdefinierte Eigenschaft definieren wie:
:root { --main-bg-color: brown; }
Und sie dann in Ihrem CSS verwenden:
.one { background-color: var(--main-bg-color); } .two { background-color: black; }
Serverseitige Präprozessoren können generieren bedingtes CSS basierend auf dynamischen Werten. Sie könnten beispielsweise Code wie folgt schreiben:
p { background-position: <?php echo (@$_GET['foo'] == 'bar')? "150" : "4"; ?>px 8px; }
Dieser Ansatz kann jedoch Auswirkungen auf die Leistung haben, da serverseitiges Rendering erforderlich ist.
Schließlich demonstriert der Artikel von Ahmad Shadeed verschiedene reine CSS-Techniken zur Bewältigung bedingter UI-Szenarien, ohne auf externe Mechanismen angewiesen zu sein.
Das obige ist der detaillierte Inhalt vonWie können Sie bedingtes Styling in CSS erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!