Не в традиционном смысле, но вы можете использовать для этого классы, если у вас есть доступ к HTML. Учти это:
<p class="normal">Text</p>
<p class="active">Text</p>
и в вашем файле CSS:
p.normal {
background-position : 150px 8px;
}
p.active {
background-position : 4px 8px;
}
Это способ CSS .
Затем есть препроцессоры CSS, такие как Sass . Вы можете использовать условные там, which'd выглядеть следующим образом :
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else if $type == monster {
color: green;
} @else {
color: black;
}
}
Недостатки в том, что вы обязаны предварительно обрабатывать свои таблицы стилей, и что условие оценивается во время компиляции, а не во время выполнения.
Самая новая функция CSS - это настраиваемые свойства (также известные как переменные CSS). Они оцениваются во время выполнения (в поддерживающих их браузерах).
С ними вы можете сделать что-нибудь в этом роде:
:root {
--main-bg-color: brown;
}
.one {
background-color: var(--main-bg-color);
}
.two {
background-color: black;
}
Наконец, вы можете предварительно обработать свою таблицу стилей на своем любимом серверном языке. Если вы используете PHP, предоставьте style.css.php
файл, который выглядит примерно так:
p {
background-position: <?php echo (@$_GET['foo'] == 'bar')? "150" : "4"; ?>px 8px;
}
Однако в этом случае у вас будет влияние на производительность, поскольку кэширование такой таблицы стилей будет затруднено.