Saya ingin menambahkan beberapa gaya pada kotak pilih dengan pseudo: setelah (untuk memberi gaya kotak pilih saya dengan 2 bagian dan tanpa gambar). Berikut HTML-nya:
<select name="">
<option value="">Test</option>
</select>
Dan itu tidak berhasil. Saya tidak tahu mengapa dan saya tidak menemukan jawabannya di spesifikasi W3C. Inilah CSS:
select {
-webkit-appearance: none;
background: black;
border: none;
border-radius: 0;
color: white;
}
select:after {
content: " ";
display: inline-block;
width: 24px; height: 24px;
background: blue;
}
Jadi apakah itu normal atau ada tipuan?
Jawaban:
Saya belum memeriksanya secara ekstensif, tetapi saya mendapat kesan bahwa ini (belum?) Mungkin, karena cara
select
elemen yang dihasilkan oleh OS tempat browser berjalan, bukan browser itu sendiri.sumber
Saya mencari hal yang sama karena latar belakang yang saya pilih sama dengan warna panah. Seperti yang disebutkan sebelumnya, tidak mungkin untuk menambahkan apapun menggunakan: before atau: after pada elemen pilih. Solusi saya adalah membuat elemen pembungkus yang saya tambahkan berikut ini: sebelum kode.
Dan ini pilihanku
Saya telah menggunakan FontAwesome.io untuk panah baru saya, tapi Anda bisa menggunakan apapun yang Anda inginkan. Jelas ini bukan solusi yang tepat, tetapi tergantung pada kebutuhan Anda, ini mungkin sudah cukup.
sumber
Menurut pengalaman saya, itu tidak berhasil, kecuali Anda bersedia membungkusnya dengan
<select>
beberapa pembungkus. Tapi yang bisa Anda lakukan adalah menggunakan gambar latar belakang SVG. MisalnyaBerhati-hatilah dengan pengkodean URL yang tepat karena IE. Anda harus menggunakan
charset=utf8
(tidak hanyautf8
), jangan gunakan tanda kutip ganda (") untuk membatasi nilai atribut SVG, gunakan apostrof (') sebagai gantinya untuk menyederhanakan hidup Anda. Enkode URL s (% 3E). Jika Anda harus mencetak karakter non-ASCII apa pun yang Anda miliki untuk mendapatkan representasi UTF-8 mereka (misalnya BabelMap dapat membantu Anda dengan itu) dan kemudian memberikan representasi itu dalam bentuk yang dikodekan URL - misalnya untukU+25BE
▾ ( BLACK DOWN-POINTING SMALL TRIANGLE) Representasi UTF-8 adalah\xE2\x96\xBE
yaitu%E2%96%BE
saat URL-dikodekan.sumber
Posting ini mungkin membantu http://bavotasan.com/2011/style-select-box-using-only-css/
Dia menggunakan div luar dengan kelas untuk menyelesaikan masalah ini.
sumber
Menghadapi masalah yang sama. Mungkin ini bisa menjadi solusi:
sumber
Solusi ini mirip dengan yang dari sroy, tetapi dengan segitiga css, bukan font web:
sumber
Bagaimana jika memodifikasi markup bukanlah suatu pilihan?
Berikut adalah solusi yang tidak memiliki persyaratan untuk pembungkus: ini menggunakan SVG di gambar latar belakang. Anda mungkin perlu menggunakan dekoder entitas HTML untuk memahami cara mengubah warna isian.
Dicubit dari CSS-Tricks .
sumber
Ini adalah solusi modern yang saya buat menggunakan font-awesome . Ekstensi vendor telah dihilangkan agar singkat.
HTML
SCSS
Jika elemen pemilihan Anda memiliki warna latar yang ditentukan, maka ini tidak akan berfungsi karena potongan ini pada dasarnya menempatkan ikon Chevron di belakang elemen pemilihan (untuk memungkinkan mengklik di atas ikon untuk tetap memulai tindakan pemilihan).
Namun, Anda dapat mengatur gaya select-wrapper ke ukuran yang sama dengan elemen pemilihan dan mengatur gaya latar belakangnya untuk mendapatkan efek yang sama.
Lihat CodePen saya untuk demo kerja yang menunjukkan bit kode ini pada kotak pilih bertema gelap dan terang menggunakan label biasa dan label "placeholder" dan gaya bersih lainnya seperti batas dan lebar.
PS Ini adalah jawaban yang telah saya kirimkan ke pertanyaan duplikat lainnya awal tahun ini.
sumber
Insted dari gaya pilih mengapa Anda tidak menambahkan div di luar pemilihan.
dan gaya lalu di CSS
sumber