Czy jest jakiś sposób, aby zmienić wygląd <input type="file">
we wszystkich przeglądarkach za pomocą niektórych stylów CSS?<typ wejściowy = "plik"> - style niestandardowe/css
Odpowiedz
Quirksmode.org ma ciekawy artykuł o tym: http://www.quirksmode.org/dom/inputfile.html
Try This -
- wziąć normalny i umieścić go w elemencie z position: relative.
- Do tego samego elementu nadrzędnego dodaj normalny i obraz, który ma poprawne style. Pozycję tych elementów absolutnie, dzięki czemu zajmują to samo miejsce, co .
- Ustaw indeks Z na 2, tak aby leżał na górze stylizowanego wejścia/obrazu.
- Wreszcie, ustawić przezroczystość 0. teraz staje się skuteczne niewidoczny, a style wejścia/obraz prześwituje, ale nadal może kliknąć na przycisk „Przeglądaj” . Jeśli przycisk jest ustawiony na u góry obrazu, użytkownik kliknie obraz, a przejdzie do normalnego okna wyboru pliku . (Zauważ, że nie możesz użyć widoczności ukrytej, ponieważ niewidoczny element naprawdę jest niewidoczny , też, i musimy pozostać klikalnym) Do tego czasu efekt może być osiągnięty przez czysty CSS. Jednak wciąż brakuje jednej funkcji.
- Gdy użytkownik wybrał plik, widoczne, fałszywe pole wejściowe powinno pokazać poprawną ścieżkę do tego pliku, jako normalny będzie. Jest to po prostu kwestia skopiowania nowej wartości do fałszywego pola wejściowego , ale potrzebujemy kodu JavaScript, aby wykonać tę operację pod .
Więcej szczegółów - http://www.quirksmode.org/dom/inputfile.html
Mógłbyś spróbować użyć SWFUpload, projekt open source, który osadza mały plik Flash na stronie zamiast wejścia plików ... Można użyć CSS do stylu przycisk, który wyzwala wysyłanie flasha, jak tylko chcesz.
Minus: praca może być trudna i oczywiście użytkownicy muszą mieć flash.
Upside: wiele plików można wybrać jednocześnie w oknie dialogowym przesyłania!
można po prostu ustawić własny przycisk wprowadzania plików. wystarczy ustawić atrybut CSS elementu wejściowego na style="display:none"
i obsłużyć zdarzenie kliknięcia w javascript. dalsze czytanie: Using hidden file input elements using the click() method
EDYCJA: okazuje się, że to już nie działa ze względów bezpieczeństwa. mały hack to właśnie ustawić styl css na visibility:hidden
. Tutaj jest JSFiddle gdzie umieszczam moje pole <input>
gdzieś na końcu mojej strony i wyzwalam openFileDialog z elementem <a>
.
//html
<input id="openFileDialog" type="file" id="files" name="files[]" accept=".json, .txt" />
//js
$("#openFile").on("click", function() {
//throws an error if browser doesn't support file upload
checkFileApiCompatibility();
//opens File Dialog
$("#openFileDialog").click();
$("#openFileDialog").on('change', function(){
openFile(this);
});
});
- 1. Typ wejściowy = "data" thymeleaf
- 2. Ustaw wartość waluty w <typ wejściowy = "liczba" />
- 3. Ustaw wartość <typ wejściowy = "data" ... w jquery
- 4. Używanie "<typ wejściowy =" plik ".... />" zamiast asp: FileUpload
- 5. Jak mogę sprawdzić <typ wejściowy = "plik"> w Angular2?
- 6. Obiekt daty JavaScript z <typ wejściowy = data>
- 7. IE: typ wejściowy = "plik" wielokrotny
- 8. Typ wejściowy = "plik" zestaw danych obrazu base64
- 9. Typ wejściowy klawiatury klawiatury iOS z przecinkiem
- 10. Jak wyodrębnić wartości z HTML <typ wejściowy = "data"> przy użyciu jQuery
- 11. Jak ograniczyć maksymalną liczbę elementów na wielu wejściach (<typ wejściowy = "plik" wiele />)
- 12. Jak ograniczyć <typ wejściowy = "plik">, aby mógł wybrać tylko pliki .pdf?
- 13. Ustawianie jednolitego <typ wejściowy = "plik"> szerokość we wszystkich przeglądarkach
- 14. <typ wejściowy = "numer" /> nie pokazuje klawiatury numerycznej na iOS
- 15. jQuery znaleźć typ wejściowy (ale także dla wybierz)
- 16. jak ustawić typ wejściowy jako hasło do edytowania editekstowego programowo
- 17. Wprowadź typ wejściowy = "Hasło" Użyj klawiatury numerycznej na urządzeniach mobilnych
- 18. plik wejściowy z JavaScript
- 19. Modyfikowanie innerHTML elementu <style> w IE8
- 20. Jak style <input type = "text"> w IE6 CSS?
- 21. <style> tag wewnątrz dowolnego elementu będzie nadal działać?
- 22. Zastosowanie rowspan atrybut w <style> tagu
- 23. CSS <style scoped> działa poza zakresem
- 24. Czy znaczniki <style> działają w Markdown?
- 25. Jaki jest najłatwiejszy sposób określenia, czy `<typ wejściowy =" e-mail ".. (na przykład) jest obsługiwany w bieżącej przeglądarce?
- 26. Angular2: sprawdzanie poprawności dla <typ wejściowy = "plik" /> nie będzie wyzwalane podczas zmiany pliku do przesłania
- 27. Dlaczego ukryty element wejściowy __VIEWSTATE jest otoczony przez <div></div>?
- 28. Typ dynamiczny dla listy <T>?
- 29. C++ - <nierozstrzygnięty typ funkcji przeciążonej>
- 30. Jak uzyskać typ Nullable <Enum>?
Duplikaty: http://stackoverflow.com/search?q=style+input+file –
możliwe duplikat (http [Jak Style "plik wejściowy" z CSS3/JavaScript?]: // stackoverflow. com/questions/3226167/how-to-style-input-file-with-css3-javascript) –
miłe pytanie ... ale próbowałem wszystkiego, nie działa ... mam nadzieję, że ktoś ma odpowiedź! –