2013-03-09 11 views
9

Sto provando a creare un pulsante con Zurb Foundation utilizzando Rails per caricare un'immagine. Ho provato questo:Come si modellano i campi dei file di modulo con zurb foundation?

<input class="tiny round disabled button" name="picture[picture]" type="file"> 

Sfortunatamente, non ha funzionato e creato due pulsanti diversi che consentono di scegliere un'immagine. C'è qualcosa che devo fare specificamente per i campi dei file?

risposta

4

ho trovato questa risorsa per essere molto utile con input type styling = "file":

http://www.quirksmode.org/dom/inputfile.html

E 'notoriamente difficile, ma questo comporta essenzialmente stratificazione l'ingresso vero e proprio con un falso che ha il vostro stile applicato ad esso.

<div class="file-inputs"> 
    <input type="file" class="hidden-input"> 
    <div class="fake-input"> 
     <input> 
     <img src="images/YOURBUTTON.png"> 
    </div> 
</div> 

Per andare con il seguente CSS:

div.file-inputs { 
position: relative; 
} 

div.hidden-input { 
position: absolute; 
top: 0px; 
left: 0px; 
z-index: 1; 
} 

input.file { 
position: relative; 
    text-align: right; 
-moz-opacity:0 ; 
filter:alpha(opacity: 0); 
opacity: 0; 
z-index: 2; 
} 
+0

Un utente ha voluto modificare il suddetto con questo commento. Aggiunto qui: Purtroppo, è ciò che devi fare per lo stile input type = "file" in questo momento. Il CSS e il JavaScript che scegli di modellarlo dipendono completamente da te. Ho trovato questo jsfiddle creato da [gabrieleromanato] (http://gabrieleromanato.com/) per mostrarti un'altra opzione CSS per lo styling. – Yakk

+0

Vedere anche: [Tipo di input di stile file? duplicate] (http://stackoverflow.com/questions/4909228/style-input-type-file) [Come stile "file di input" con CSS3/Javascript?] (http://stackoverflow.com/questions/3226167/ how-to-style-input-file-with-css3-javascript) [Styling an input type = "file" button.] (http://stackoverflow.com/questions/572768/styling-an-input-type-file -button) – Yakk

1

personalizzato pulsante file caricare con HTML CSS e JS

Html codice:

<div class="custom-file-upload"> 
    <!--<label for="file">File: </label>--> 
    <input type="file" id="file" name="myfiles[]" multiple /> 
    </div> 

CSS:

.custom-file-upload-hidden { 
    display: none; 
    visibility: hidden; 
    position: absolute; 
    left: -9999px; 
} 

.custom-file-upload { 
    display: block; 
    width: auto; 
    font-size: 16px; 
    margin-top: 30px; 
} 
    .custom-file-upload label { 
    display: block; 
    margin-bottom: 5px; 
} 

.file-upload-wrapper { 
    position: relative; 
    margin-bottom: 5px; 
} 

.file-upload-input { 
    width: 300px; 
    color: #fff; 
    font-size: 16px; 
    padding: 11px 17px; 
    border: none; 
    background-color: #c0392b; 
    -moz-transition: all 0.2s ease-in; 
    -o-transition: all 0.2s ease-in; 
    -webkit-transition: all 0.2s ease-in; 
    transition: all 0.2s ease-in; 
    float: left; 
    /* IE 9 Fix */ 
} 

.file-upload-input:hover, .file-upload-input:focus { 
    background-color: #ab3326; 
    outline: none; 
} 

.file-upload-button { 
    cursor: pointer; 
    display: inline-block; 
    color: #fff; 
    font-size: 16px; 
    text-transform: uppercase; 
    padding: 11px 20px; 
    border: none; 
    margin-left: -1px; 
    background-color: #962d22; 
    float: left; 
    /* IE 9 Fix */ 
    -moz-transition: all 0.2s ease-in; 
    -o-transition: all 0.2s ease-in; 
    -webkit-transition: all 0.2s ease-in; 
    transition: all 0.2s ease-in; 
} 

.file-upload-button:hover { 
    background-color: #6d2018; 
} 

JS CODICE: http://codepen.io/wallaceerick/pen/fEdrz controllare questo per i dettagli completi

1

Il trucco è quello di fare qualcosa che assomiglia a questo:

css file button trick

HTML

<button class="file-upload">Upload 
    <input type="file" name="files" /> 
</button> 

CSS

button.file-upload > input[type='file'] { 
    cursor: pointer; 
    position: absolute; 
    font-size: 0; 
    top: 0; 
    left: 0; 
    opacity: 0; 
    height: 100%; 
    width: 100%; 
} 

Utilizzando fondazione v5.5.2: http://codepen.io/soyuka/pen/xGMPKJ

+0

C'è un grosso problema con questa soluzione - non puoi sapere se hai già caricato qualcosa o no .. che uccide UX all'istante. – banesto

+0

Sicuramente non sono d'accordo con te, ho appena risposto alla domanda. Inoltre, il trucco rimane lo stesso, devi solo regolare le dimensioni dei pulsanti in modo da poter vedere il testo. Oppure puoi gestire i file con javascript :). – soyuka

+1

Ho fatto esattamente questo: ho controllato il cambio di file e ho inserito il nome del file caricato in input di sola lettura accanto al pulsante, ma speravo che Zurb Foundation avrebbe trovato questa soluzione fuori dalla scatola .. – banesto

Problemi correlati