2013-03-09 8 views

Odpowiedz

4

Znalazłem ten zasób być bardzo pomocne typu wejścia do stylizacji = „file”:

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

Jest to bardzo trudne, ale to w zasadzie polega warstw rzeczywiste wejście z fałszywą taki, który ma swój stylizacja zastosowana do niego.

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

Aby przejść z następującym 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

Użytkownik chciał edytować wyżej z tym komentarzem. Dodano tutaj: Niestety, to, co musisz zrobić, aby styl input = "file" w tym czasie. Kod CSS i JavaScript, które wybierzesz do stylu, zależy wyłącznie od Ciebie. Znalazłem to jsfiddle stworzone przez [gabrieleromanato] (http://gabrieleromanato.com/), aby pokazać ci inną opcję CSS do stylizacji. – Yakk

+0

Patrz także: [Plik typu wejściowego stylu? duplicate] (http://stackoverflow.com/questions/4909228/style-input-type-file) [Jak stylować "plik wejściowy" za pomocą CSS3/Javascript?] (http://stackoverflow.com/questions/3226167/ how-to-style-input-file-with-css3-javascript) [Stylizacja typu wejściowego = przycisk "plik".] (http://stackoverflow.com/questions/572768/styling-an-input-type-file -button) – Yakk

1

Niestandardowe przycisk Prześlij plik przy użyciu html css i js

kod HTML:

<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 KOD: http://codepen.io/wallaceerick/pen/fEdrz sprawdzić ten kompletnych informacji

1

Sztuką jest zrobić coś, co wygląda tak:

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%; 
} 

Korzystanie węgielnego v5.5.2: http://codepen.io/soyuka/pen/xGMPKJ

+0

Istnieje jeden duży problem z tym rozwiązaniem - nie możesz wiedzieć, czy już coś przesłałeś, czy nie ... co natychmiast zabija UX. – banesto

+0

Z pewnością nie zgadzam się z tobą, właśnie odpowiedziałem na pytanie. Ponadto, sztuczka pozostaje taka sama, po prostu trzeba dostosować rozmiary przycisków, aby nadal można było zobaczyć tekst. Lub możesz obsłużyć pliki javascript :). – soyuka

+1

Zrobiłem dokładnie to - sprawdziłem zmianę pliku i umieściłem przesłaną nazwę pliku na wejściu tylko do odczytu obok przycisku, ale miałem nadzieję, że fundacja Zurb będzie miała to rozwiązanie z pudełka. – banesto

Powiązane problemy