Geleneksel anlamda değil, ancak HTML erişiminiz varsa bunun için sınıfları kullanabilirsiniz. Bunu düşün:
<p class="normal">Text</p>
<p class="active">Text</p>
ve CSS dosyanızda:
p.normal {
background-position : 150px 8px;
}
p.active {
background-position : 4px 8px;
}
Bunu yapmanın CSS yolu budur .
Sonra Sass gibi CSS ön işlemcileri var . Orada aşağıdaki gibi görünen koşul ifadelerini kullanabilirsiniz :
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else if $type == monster {
color: green;
} @else {
color: black;
}
}
Dezavantajları, stil sayfalarınızı önceden işlemek zorunda olmanız ve koşulun çalışma zamanında değil derleme zamanında değerlendirilmesidir.
CSS'nin daha yeni bir özelliği, özel özelliklerdir (aka CSS değişkenleri). Çalışma zamanında değerlendirilirler (bunları destekleyen tarayıcılarda).
Onlarla, çizgide bir şeyler yapabilirsiniz:
:root {
--main-bg-color: brown;
}
.one {
background-color: var(--main-bg-color);
}
.two {
background-color: black;
}
Son olarak, stil sayfanızı favori sunucu tarafı dilinizle önceden işleyebilirsiniz. PHP kullanıyorsanız style.css.php
, şuna benzer bir dosya sunun :
p {
background-position: <?php echo (@$_GET['foo'] == 'bar')? "150" : "4"; ?>px 8px;
}
Bu durumda, böyle bir stil sayfasını önbelleğe almak zor olacağından, performans üzerinde bir etkiye sahip olacaksınız.