Dlaczego nie ma fantazyjnego przycisku przesyłania elementu pliku do bootowania na Twitterze? Byłoby miło, gdyby zaimplementowano niebieski przycisk główny dla przycisku przesyłania. Czy możliwe jest nawet wyrafinowanie przycisku przesyłania za pomocą CSS? (wygląda jak natywny element przeglądarki, którym nie można manipulować)
css
forms
twitter-bootstrap
input-type-file
jkushner
źródło
źródło
Odpowiedzi:
Oto rozwiązanie dla Bootstrap 3 i 4.
Aby stworzyć funkcjonalną kontrolę wprowadzania pliku, która wygląda jak przycisk, potrzebujesz tylko HTML:
HTML
Działa to we wszystkich nowoczesnych przeglądarkach, w tym IE9 +. Jeśli potrzebujesz wsparcia dla starej wersji IE, skorzystaj z wcześniejszego podejścia pokazanego poniżej.
Techniki te opierają się na
hidden
atrybucie HTML5 . Bootstrap 4 korzysta z następującego CSS, aby ukryć tę funkcję w nieobsługiwanych przeglądarkach. Może być konieczne dodanie, jeśli używasz Bootstrap 3.Starsze podejście do starej IE
Jeśli potrzebujesz wsparcia dla IE8 i niższych wersji, użyj następującego HTML / CSS:
HTML
CSS
Zauważ, że stary IE nie wyzwala danych wejściowych pliku po kliknięciu na
<label>
, więc „wzdęcie” CSS robi kilka rzeczy do obejścia:<span>
Informacje zwrotne i dodatkowe czytanie
Opublikowałem więcej szczegółów na temat tej metody, a także przykłady pokazujące użytkownikowi, które / ile plików jest wybranych:
http://www.abeautifulsite.net/whipping-file-inputs-into-shape-with-bootstrap-3/
źródło
<label>
element. Jako najlepsze rozwiązanie :)Jestem zaskoczony, że nie wspomniano o tym
<label>
elemencie.Rozwiązanie:
Nie potrzebujesz żadnego JS ani funky css ...
Rozwiązanie dotyczące dołączenia nazwy pliku:
Powyższe rozwiązanie wymaga jQuery.
źródło
for
jeśli owijasz element docelowy etykietą.Bez dodatkowej wtyczki to rozwiązanie ładujące działa świetnie dla mnie:
próbny:
http://jsfiddle.net/haisumbhatti/cAXFA/1/ (bootstrap 2)
http://jsfiddle.net/haisumbhatti/y3xyU/ (bootstrap 3)
źródło
Jest zawarty w widelcu bootstrapu Jasnego.
Prosty przycisk przesyłania można utworzyć za pomocą
Dzięki wtyczce fileupload możesz tworzyć bardziej zaawansowane widżety. Zajrzyj na http://jasny.github.io/bootstrap/javascript/#fileinput
źródło
Przyciski przesyłania to problem w stylu, ponieważ stylizuje wejście, a nie przycisk.
ale możesz użyć tej sztuczki:
http://www.quirksmode.org/dom/inputfile.html
Podsumowanie:
Weź normalny
<input type="file">
i umieść go w elemencie za pomocąposition: relative
.Do tego samego elementu nadrzędnego dodaj normalną
<input>
i obraz, które mają poprawne style. Ustaw te elementy bezwzględnie, aby zajmowały to samo miejsce co<input type="file">
.Ustaw indeks Z
<input type="file">
na 2, tak aby leżał na górze stylizowanego wejścia / obrazu.Na koniec ustaw krycie
<input type="file">
na 0.<input type="file">
Teraz staje się efektywnie niewidoczny, a style wejściowe / obraz świecą, ale nadal możesz kliknąć przycisk „Przeglądaj”. Jeśli przycisk znajduje się na górze obrazu, wydaje się, że użytkownik klika obraz i wyświetla normalne okno wyboru pliku. (Pamiętaj, że nie możesz używać widoczności: ukryty, ponieważ naprawdę niewidoczny element jest również nie do kliknięcia, a my musimy pozostać klikalnym)źródło
Pracuje dla mnie:
Aktualizacja
Styl wtyczki jQuery :
źródło
Uproszczona odpowiedź z wykorzystaniem części z innych odpowiedzi, głównie user2309766 i dotcomsuperstar.
Funkcje:
split
do usunięcia ścieżki pliku używa wyrażeń regularnych i ograniczników „\” i „/”.Kod:
źródło
Z pewnymi inspiracjami z innych postów powyżej, oto pełne rozwiązanie, które łączy coś, co wygląda jak pole kontrolne formularza z addon-group-addon dla czystego widżetu wejściowego pliku, który zawiera link do bieżącego pliku.
źródło
To działa idealnie dla mnie
źródło
Sprawdź dane wejściowe pliku Bootstrap na Twitterze . Korzysta z bardzo prostego rozwiązania, wystarczy dodać jeden plik javascript i wkleić następujący kod:
źródło
Proste rozwiązanie z akceptowalnym wynikiem:
I styl:
źródło
Rozwiązanie do wielokrotnego przesyłania
Poprawiłem dwie poprzednie odpowiedzi, aby uwzględnić wiele przesłanych plików. W ten sposób etykieta pokazuje nazwę pliku, jeśli tylko jeden jest wybrany lub
x files
w przeciwnym przypadku.Może to również dotyczyć zmiany tekstu przycisku i klasy.
źródło
Utworzyłem niestandardowy przycisk przesyłania, aby akceptować tylko obrazy, które można modyfikować zgodnie z wymaganiami.
Mam nadzieję że to pomoże!! :)
(Używany framework Bootstrap)
Codepen-link
HTML
CSS
JS
źródło
to najlepszy styl przesyłania plików, jaki lubię:
możesz uzyskać wersje demo i więcej stylów na:
http://www.jasny.net/bootstrap/javascript/#fileinput
ale za pomocą tego, należy wymienić twitter bootstrap z plików jasny bootstrapowych ..
pozdrowienia.
źródło
Oparty na absolutnie genialnym rozwiązaniu @claviska, któremu należy się cały kredyt.
W pełni funkcjonalny Bootstrap 4 wejścia plików z walidacji i tekstem pomocy.
W oparciu o przykład grupy wejściowej mamy fikcyjne pole tekstowe używane do wyświetlania nazwy pliku dla użytkownika, które jest zapełniane
onchange
zdarzeniem w polu wejściowym pliku ukrytym za przyciskiem etykiety. Oprócz włączenia obsługi sprawdzania poprawności bootstrap 4, umożliwiliśmy także kliknięcie w dowolnym miejscu na wejściu, aby otworzyć okno dialogowe pliku.Trzy stany pliku wejściowego
Trzy możliwe stany są niepotwierdzone, poprawne i niepoprawne z
required
ustawionym atrybutem fikcyjnego tagu wejściowego HTML .Znaczników HTML dla wejścia
Wprowadzamy tylko 2 niestandardowe klasy
input-file-dummy
iinput-file-btn
odpowiednio stylizujemy i łączymy pożądane zachowanie. Cała reszta jest standardowym znacznikiem Bootstrap 4.Przepisy dotyczące zachowania JavaScript
Atrapa wejścia musi być tylko do odczytu, jak w oryginalnym przykładzie, aby uniemożliwić użytkownikowi zmianę danych wejściowych, które można zmienić tylko za pomocą okna dialogowego otwartego pliku. Niestety sprawdzanie poprawności nie występuje na
readonly
polach, więc przełączamy edytowalność danych wejściowych na fokus i rozmycie ( zdarzenia jqueryonfocusin
ionfocusout
) i upewniamy się, że będzie ponownie sprawdzana po wybraniu pliku.Oprócz umożliwienia kliknięcia pola tekstowego, wyzwalając zdarzenie kliknięcia przycisku, pozostałe funkcje wypełniania pola zastępczego zostały zaplanowane przez @claviska.
Ulepszenia stylu niestandardowego
Co najważniejsze, nie chcemy, aby
readonly
pole przeskakiwało między szarym tłem a bielą, dlatego zapewniamy, że pozostanie białe. Przycisk zakresu nie ma kursora kursora, ale i tak musimy go dodać do danych wejściowych.nJoy!
źródło
Używam http://gregpike.net/demos/bootstrap-file-input/demo.html :
lub
źródło
/ * * Bootstrap 3 filestyle * http://dev.tudosobreweb.com.br/bootstrap-filestyle/ * Copyright (c) 2013 Markus Vinicius da Silva Lima * Aktualizacja bootstrap 3 przez Paulo Henrique Foxer * Wersja 2.0.0 * Licensed na licencji MIT. * * /
źródło
Zmodyfikowałem odpowiedź @claviska i działa tak, jak lubię (Bootstrap 3, 4 nie testowany):
źródło
Poniższy kod tworzy jak na obrazku
HTML
JavaScript
źródło
Mam ten sam problem i próbuję tego w ten sposób.
CSS
JS
Mam nadzieję, że znalazłeś najlepsze rozwiązanie ...
źródło
Spróbuj wykonać w Bootstrap v.3.3.4
źródło
Oto alternatywna sztuczka, nie jest to najlepsze rozwiązanie, ale daje tylko wybór
Kod HTML:
JavaScript:
źródło
W odniesieniu do odpowiedzi claviska - jeśli chcesz pokazać przesłaną nazwę pliku w podstawowym przesyłaniu pliku, możesz to zrobić w
onchange
przypadku zdarzeń wejściowych . Po prostu użyj tego kodu:Kod JS Jquery jest odpowiedzialny za pobieranie przesłanej nazwy pliku:
Lub z waniliowym JS:
źródło
Pomyślałem, że dodam swoją trzy pensy, żeby powiedzieć, jak domyślny
.custom-file-label
icustom-file-input
plik wejściowy BS4 i jak można go użyć.Ta ostatnia klasa znajduje się w grupie wejściowej i nie jest widoczna. Podczas gdy ten pierwszy jest widoczną etykietą i ma: po pseudoelementie, który wygląda jak przycisk.
Nie możesz dodawać klas do elementów psuedoelement, ale możesz nadać im styl CSS (lub SASS).
źródło
Nie jest wymagane wymyślne shiz:
HTML:
JS:
UWAGA: Te trzy elementy formularza MUSZĄ być ze sobą rodzeństwem (wybrany plik .image, przycisk pliku .image, plik .image)
źródło
http://markusslima.github.io/bootstrap-filestyle/
LUB
źródło