2013-05-28 14 views
6

Vorrei personalizzare l'aspetto di un input [range] html5 quando è verticale.Come personalizzare solo con css per html5 slider-vertical-slider?

Desidera evitare la direttiva CSS 3 come la trasformazione: ruotare, quindi complicherà il layout dell'interfaccia utente.

Le proprietà di Webkit css sono riconosciute nel mio contesto, gli altri venditori sono inutili nel mio caso.

La personalizzazione funziona bene per il cursore di default orizzontale, ma non per quella verticale, si può guardare qui:

jsFiddle: http://jsfiddle.net/QU5VD/1/

In caso contrario, ecco il codice:

HTML

<input type="range" class="vHorizon" />

<input type="range" class="vVertical" />

CSS

input[type="range"].vHorizon { 
    -webkit-appearance: none; 
    background-color: pink; 
    width: 200px; 
    height:10px; 
} 
input[type="range"].vVertical { 
    -webkit-appearance: slider-vertical; 
    background-color: pink; 
    width: 10px; 
    height:200px; 
} 
input[type="range"]::-webkit-slider-thumb { 
    -webkit-appearance: none; 
    background-color: red; 
    width: 20px; 
    height: 20px; 
} 
+0

un trucco che so è quello di utilizzare 'transform: rotate (90)' su quello orizzontale. Ma è un trucco sporco e non consiglierò di usarlo. Ma è bello saperlo. – Sourabh

+0

Thks, sì, per diversi motivi, non è un trucco così buono (doversi preoccupare della posizione, fa funzionare la CPU (software incorporato)) – medCoder

+0

Ciao, sto affrontando lo stesso problema e mi chiedo se qualcuno abbia trovato una soluzione migliore soluzione per questo. L'uso delle rotazioni porta il posizionamento del cursore totalmente fuori controllo :( –

risposta

6

****** AGGIORNAMENTO RISPOSTA ****

Se ho capito bene, si sta cercando di farti sembrare verticale come ciò che il vostro orizzontale sembra? In tal caso:

input[type=range].vVertical { 
    -webkit-appearance: none; 
    background-color: green; 
    width: 200px; 
    height:10px; 

     -webkit-transform:rotate(90deg);  
    -moz-transform:rotate(90deg); 
    -o-transform:rotate(90deg); 
    -ms-transform:rotate(90deg); 
    transform:rotate(90deg); 
    z-index: 0; 
} 
input[type=range].vHorizon { 
    -webkit-appearance: none; 
    background-color: pink; 
    height: 10px; 
    width:200px; 

} 
input[type="range"]::-webkit-slider-thumb { 
    -webkit-appearance: none; 
    background-color: red; 
    width: 20px; 
    height: 20px; 
} 

fiddle < - AGGIORNATO

+0

Il tuo trucco funziona, ma come ho detto e avrei dovuto chiedere nella mia domanda, Vorrei evitare che il css trasformi il workaround. Porta posizione e altri problemi – medCoder

Problemi correlati