2013-03-10 15 views
21

E 'possibile generare colori casuali con puro CSS e senza usare javascript? Probabilmente è impossibile ma sono ancora curioso.Genera colori casuali con puro CSS (non javascript)?

+2

Non è possibile. Il CSS è praticamente statico. – Bart

+0

http://stackoverflow.com/questions/476276/using-javascript-in-css – Blender

+2

@Blender Questo non è in realtà * puro * CSS. – Boaz

risposta

5

Ho trovato per voi qualcosa here, ma utilizza PHP. Penso che sia impossibile con i semplici CSS.

2

Non proprio. Il dinamismo può essere implementato solo con il supporto dello scripting.

1
<body style='background-color:<?php printf("#%06X\n", mt_rand(0, 0x222222)); ?>'> 

Utilizzo di PHP

4

Questo non è davvero possibile in puro CSS.

Tuttavia, l'utilizzo di un pre-processore come SASS (example) o LESS (example) può generare colori casuali perché sono stati creati utilizzando linguaggi di script.


Una nota a margine che può aiutare i lettori in futuro è la possibilità per l'utilizzo di CSS variables. Siamo in grado di dichiarare una variabile CSS dicendo

element { 
    --main-bg-color: brown; 
} 

e usarlo in questo modo:

element { 
    background-color: var(--main-bg-color); 
} 

Ora possiamo cambiarlo usando JS:

// From http://stackoverflow.com/a/5365036/2065702 
var randomColor = "#"+((1<<24)*Math.random()|0).toString(16); 

document.documentElement.style.setProperty('main-bg-color', randomColor); 

Oppure si potrebbe usare una completamente diversa modo di selezionare un colore casuale (come l'input dell'utente). Questo consente possibilità come la tematizzazione. Una cosa che devi considerare è browser support perché al momento non è eccezionale.