Jak mogę zmienić styl obramowania (wejściowego) pola wyboru? Włożyłem border:1px solid #1e5180
to, ale w FireFox 3.5 nic się nie dzieje!
122
Gdyby coś się stało w którejkolwiek przeglądarce, byłbym zaskoczony. Jest to jeden z tych wyjątkowych elementów formularza, których przeglądarki zwykle nie pozwalają na zbyt wiele stylów, a ludzie zwykle próbują zastąpić je javascriptem, aby mogli nadać styl / kod, aby coś wyglądało i działało jak pole wyboru.
Sugeruję użycie „konspektu” zamiast „obramowania”. Na przykład:
outline: 1px solid #1e5180
.źródło
!important
używasz konspektu, może być konieczne dodanie do twojego css. Testowałem to w Firefoksie 12.0 i bez! Ważne, zarys znikałby tak długo, jak klikałem pole wyboru.Powinieneś użyć
Następnie pozbędziesz się domyślnego obrazu / stylu pola wyboru i możesz go zmienić. W każdym razie w Firefoksie nadal będzie tam obramowanie
źródło
Możesz użyć cieni prostokątnych do sfałszowania obramowania:
źródło
Oto czyste rozwiązanie CSS (bez obrazów) dla różnych przeglądarek, oparte na niestandardowych polach wyboru Martina i przyciskach radiowych z łączem CSS3: http://martinivanov.net/2012/12/21/imageless-custom-checkboxes-and-radio-buttons -with-css3-revisited /
Oto jsFiddle: http://jsfiddle.net/DJRavine/od26wL6n/
Przetestowałem to na następujących przeglądarkach:
źródło
Wiem, że jestem przestarzały ... Ale małym obejściem byłoby umieszczenie pola wyboru w tagu etykiety, a następnie stylizowanie etykiety za pomocą obramowania:
następnie stylizuj etykietę:
źródło
label { position: relative; overflow: hidden; width: 16px; height: 16px; border: 1px solid #0f0; }
a następnielabel > input[type=checkbox] { position: absolute; left: -999px; }
To pozwoli ci dostosować własne pole wyboru, a oryginalne pole wyboru będzie nadal zaznaczane / odznaczane, ale użytkownik go nie zobaczy. Będą widzieć tylko Twoje niestandardowe pole wyboru.:hover
i,:checked
aby stylizować inne stany niestandardowego pola wyboru.Oto moja wersja, która używa FontAwesome jako elementu zaznaczania pola wyboru. Myślę, że FontAwesome jest używany przez prawie wszystkich, więc można bezpiecznie założyć, że Ty też go masz. Nie testowane w IE / Edge i chyba nikogo to nie obchodzi.
źródło
W przypadku przeglądarek Firefox , Chrome i Safari nic się nie dzieje.
W IE obramowanie jest stosowane poza polem wyboru (nie jako część pola wyboru), a „fantazyjny” efekt cieniowania w polu wyboru zniknął (wyświetlany jako staroświeckie pole wyboru).
W przypadku Opery styl obramowania w rzeczywistości nakłada obramowanie na element pola wyboru.
Opera radzi sobie również z innymi stylami na polu wyboru lepiej niż inne przeglądarki: kolor jest stosowany jako kolor zaznaczenia, kolor tła jest stosowany jako kolor tła wewnątrz pola wyboru (tj. Stosuje tło tak, jakby pole wyboru znajdowało się wewnątrz a
<div>
z tłem)) .Wniosek
Najłatwiejszym rozwiązaniem jest umieszczenie pola wyboru
<div>
tak, jak sugerowali inni.Jeśli chcesz całkowicie kontrolować wygląd, będziesz musiał zastosować zaawansowane podejście do obrazu / javascript, również przeznaczone dla innych.
źródło
Stylizowanie pól wyboru (i wielu innych elementów wejściowych dla tej materii) nie jest tak naprawdę możliwe w przypadku czystego CSS, jeśli chcesz radykalnie zmienić wygląd wizualny.
Najlepszym rozwiązaniem jest zaimplementowanie czegoś takiego jak jqTransform , które faktycznie zastępuje dane wejściowe obrazami i stosuje do nich zachowanie javascript, aby naśladować pole wyboru (lub inny element w tym zakresie)
źródło
Nie, nadal nie możesz stylizować samego pola wyboru, ale (w końcu) wymyśliłem, jak stylizować iluzję, zachowując funkcjonalność klikania pola wyboru. Oznacza to, że możesz to przełączyć, nawet jeśli kursor nie jest idealnie nieruchomy, bez ryzyka zaznaczenia tekstu lub uruchomienia funkcji przeciągnij i upuść!
Przykładem jest użycie „przycisku” zakresu, a także tekstu na etykiecie, ale daje on wyobrażenie, jak można uczynić pole wyboru niewidocznym i narysować wszystko za nim.
To rozwiązanie prawdopodobnie pasuje również do przycisków radiowych.
Poniższe działa w IE9, FF30.0 i Chrome 40.0.2214.91 i jest tylko podstawowym przykładem. Nadal możesz go używać w połączeniu z obrazami tła i pseudoelementami.
http://jsfiddle.net/o0xo13yL/1/
źródło
Oto prosty sposób (do użycia przed lub po pseudoelementach / klasach):
źródło
źródło
umieść go w div i dodaj obramowanie do div
źródło
źródło