Nicht im herkömmlichen Sinne, aber Sie können Klassen dafür verwenden, wenn Sie Zugriff auf HTML haben. Bedenken Sie:
<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;
}
Das ist die CSS- Methode.
Dann gibt es CSS-Präprozessoren wie Sass . Sie können dort Bedingungen verwenden , die folgendermaßen aussehen würden:
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else if $type == monster {
color: green;
} @else {
color: black;
}
}
Nachteile sind, dass Sie Ihre Stylesheets vorverarbeiten müssen und dass die Bedingung zur Kompilierungszeit und nicht zur Laufzeit ausgewertet wird.
Eine neuere Funktion von CSS sind benutzerdefinierte Eigenschaften (auch als CSS-Variablen bezeichnet). Sie werden zur Laufzeit ausgewertet (in Browsern, die sie unterstützen).
Mit ihnen könnten Sie etwas entlang der Linie tun:
:root {
--main-bg-color: brown;
}
.one {
background-color: var(--main-bg-color);
}
.two {
background-color: black;
}
Schließlich können Sie Ihr Stylesheet mit Ihrer bevorzugten serverseitigen Sprache vorverarbeiten. Wenn Sie PHP verwenden, stellen Sie eine style.css.php
Datei bereit, die ungefähr so aussieht:
p {
background-position: <?php echo (@$_GET['foo'] == 'bar')? "150" : "4"; ?>px 8px;
}
In diesem Fall haben Sie jedoch Auswirkungen auf die Leistung, da das Zwischenspeichern eines solchen Stylesheets schwierig ist.