Non nel senso tradizionale, ma è possibile utilizzare le classi per questo, se avete accesso al codice HTML. Considerate questo:
<p class="normal">Text</p>
<p class="active">Text</p>
e nel vostro file CSS:
p.normal {
background-position : 150px 8px;
}
p.active {
background-position : 4px 8px;
}
Questo è il CSS modo per farlo.
Poi ci sono i preprocessori CSS come Sass.È possibile utilizzare conditionals lì, which'd simile a questa:
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else if $type == monster {
color: green;
} @else {
color: black;
}
}
Gli svantaggi sono, che voi siete tenuti a pre-processo i fogli di stile, e che la condizione viene valutata al momento della compilazione, non è il tempo di esecuzione.
Una caratteristica più recente di CSS corretta sono custom properties (variabili CSS note anche come). Vengono valutati in fase di esecuzione (nei browser che li supportano).
Con loro si potrebbe fare qualcosa lungo la linea:
:root {
--main-bg-color: brown;
}
.one {
background-color: var(--main-bg-color);
}
.two {
background-color: black;
}
Infine, si può trattare il vostro foglio di stile con il linguaggio server-side preferito. Se stai usando PHP, servire un file style.css.php
, che sembra qualcosa di simile:
p {
background-position: <?php echo (@$_GET['foo'] == 'bar')? "150" : "4"; ?>px 8px;
}
In questo caso, sarà comunque avere un impatto sulle prestazioni, dal momento che il caching tale foglio di stile sarà difficile.
Buona risposta, voglio solo aggiungere un punto per quanto riguarda la memorizzazione nella cache: Poiché i browser nascondono i fogli di stile e di solito non li scaricano nuovamente per ogni pagina, è difficile fare affidamento su fogli di stile "dinamici" generati da PHP/[programmazione-linguaggio-di-scelta ]. Non è il modo in cui dovrebbe funzionare. Se hai bisogno di cambiare CSS, puoi ovviamente inserirlo nella pagina, ma questo inizia a scontrarsi con la separazione di contenuto/presentazione. – deceze
Riguardo a ciò che ha detto il raggiro, ciò non significa che non si possa avere un sito web che cambia dinamicamente. I fogli di stile possono rimanere statici e puoi cambiare classi di elementi usando javascript con o senza jquery o PHP in questo modo lo stile degli elementi può cambiare. – csga5000
e, se si desidera stilizzare le barre di scorrimento? (non puoi trovare :: - webkit-scrollbar-button in html) – Jerry