Не в традиционном смысле, но вы можете использовать классы для этого, если у вас есть доступ к 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 . Вы можете использовать условные выражения , которые выглядят так:
$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;
}
В этом случае вы, однако, окажете влияние на производительность, поскольку кэширование такой таблицы стилей будет затруднено.