Nie w tradycyjnym sensie, ale możesz użyć do tego klas, jeśli masz dostęp do HTML. Rozważ to:
<p class="normal">Text</p>
<p class="active">Text</p>
aw pliku CSS:
p.normal {
background-position : 150px 8px;
}
p.active {
background-position : 4px 8px;
}
To jest sposób CSS, aby to zrobić.
Są też preprocesory CSS, takie jak Sass . Możesz tam użyć warunków warunkowych , które wyglądałyby tak:
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else if $type == monster {
color: green;
} @else {
color: black;
}
}
Wadą jest to, że jesteś zobowiązany do wstępnego przetwarzania swoich arkuszy stylów i że warunek jest oceniany w czasie kompilacji, a nie w czasie wykonywania.
Nowszą cechą właściwego CSS są właściwości niestandardowe (inaczej zmienne CSS). Są one oceniane w czasie wykonywania (w obsługujących je przeglądarkach).
Dzięki nim możesz zrobić coś wzdłuż linii:
:root {
--main-bg-color: brown;
}
.one {
background-color: var(--main-bg-color);
}
.two {
background-color: black;
}
Na koniec możesz wstępnie przetworzyć swój arkusz stylów za pomocą ulubionego języka po stronie serwera. Jeśli używasz PHP, podaj style.css.php
plik, który wygląda mniej więcej tak:
p {
background-position: <?php echo (@$_GET['foo'] == 'bar')? "150" : "4"; ?>px 8px;
}
W takim przypadku będziesz miał jednak wpływ na wydajność, ponieważ buforowanie takiego arkusza stylów będzie trudne.