Saya mencoba gaya select
elemen menggunakan CSS3. Saya mendapatkan hasil yang saya inginkan di WebKit (Chrome / Safari), tetapi Firefox tidak bermain dengan baik (Saya bahkan tidak peduli dengan IE). Saya menggunakan appearance
properti CSS3 , tetapi untuk beberapa alasan saya tidak dapat menghilangkan ikon drop-down dari Firefox.
Inilah contoh apa yang saya lakukan: http://jsbin.com/aniyu4/2/edit
#dropdown {
-moz-appearance: none;
-webkit-appearance: none;
appearance: none;
background: transparent url('example.png') no-repeat right center;
padding: 2px 30px 2px 2px;
border: none;
}
Seperti yang Anda lihat, saya tidak mencoba sesuatu yang mewah. Saya hanya ingin menghapus gaya default dan menambahkan panah drop-down saya sendiri. Seperti yang saya katakan, hebat di WebKit, tidak hebat di Firefox. Rupanya, -moz-appearance: none
tidak menghilangkan item drop-down.
Ada ide? Tidak, JavaScript bukan opsi
-moz-appearance
properti CSS3, saya menggunakan-moz-appearance: none;
dan tampaknya berfungsi di versi 35.0.1.@-moz-document url-prefix() { select { width: 105%; overflow: hidden; } }
Jawaban:
Oke, saya tahu pertanyaan ini sudah tua, tetapi 2 tahun ke depan dan mozilla tidak melakukan apa-apa.
Saya telah menemukan solusi sederhana.
Ini pada dasarnya menghapus semua pemformatan kotak pilih di firefox dan membungkus elemen rentang di sekitar kotak pilih dengan gaya khusus Anda, tetapi seharusnya hanya berlaku untuk firefox.
Katakan ini adalah menu pilihan Anda:
Dan mari kita asumsikan kelas css 'css-select' adalah:
Di firefox, ini akan ditampilkan dengan menu pilih, diikuti oleh panah pilih firefox jelek, diikuti oleh kustom Anda tampak bagus. Tidak ideal
Sekarang untuk menjalankan firefox ini, tambahkan elemen span sekitar dengan kelas 'css-select-moz':
Kemudian perbaiki CSS untuk menyembunyikan panah kotor mozilla dengan -moz-appearance: window dan melempar panah kustom ke kelas span 'css-select-moz', tetapi hanya tampilkan di mozilla, seperti ini:
Cukup keren untuk hanya menemukan bug ini 3 jam yang lalu (saya baru mengenal desain web dan sepenuhnya otodidak). Namun, komunitas ini secara tidak langsung telah memberi saya banyak bantuan, saya pikir sudah saatnya saya memberikan sesuatu kembali.
Saya hanya mengujinya di firefox (mac) versi 18, dan kemudian 22 (setelah saya perbarui).
Semua umpan balik diterima.
sumber
Pembaruan: ini diperbaiki di Firefox v35. Lihat inti lengkap untuk detailnya.
Baru tahu cara menghapus panah pilihan dari Firefox . Caranya adalah dengan menggunakan campuran
-prefix-appearance
,text-indent
dantext-overflow
. Ini adalah CSS murni dan tidak memerlukan markup tambahan.Diuji pada Windows 8, Ubuntu dan Mac, versi terbaru Firefox.
Contoh langsung: http://jsfiddle.net/joaocunha/RUEbp/1/
Lebih lanjut tentang subjek: https://gist.github.com/joaocunha/6273016
sumber
padding-right:10px;
ke<select>
"push" panah yang sekarang tidak terlihat ke kiri. Intinya: Firefox menyembunyikan panah, Chrome MENGHAPUS. Akan memperbarui tulisan saya sesuai, terima kasih untuk itu.-moz-appearence: window
tidak bekerja dengan latar belakang transparan (menggambar bg jelek di tempat, setidaknya di firefox linux)Trik yang bekerja untuk saya adalah membuat lebar pilih lebih dari 100% dan menerapkan overflow: disembunyikan
Ini adalah satu-satunya cara sekarang untuk menyembunyikan panah dropdown di FF.
BTW. jika Anda ingin dropdown yang indah gunakan http://harvesthq.github.com/chosen/
sumber
Pembaruan Penting:
Pada Firefox V35 properti penampilan sekarang berfungsi !!
Dari catatan rilis resmi firefox di V35 :
Jadi sekarang untuk menyembunyikan panah default - semudah menambahkan aturan berikut pada elemen pilih kami:
DEMO
sumber
Kami telah menemukan cara sederhana dan layak untuk melakukan ini. Ini lintas-browser, dapat didegradasi, dan tidak memecah posting bentuk. Pertama, atur kotak pilih
opacity
ke0
.ini agar Anda masih bisa mengkliknya
Kemudian buat div dengan dimensi yang sama dengan kotak pilih. Div harus diletakkan di bawah kotak pilih sebagai latar belakang. Gunakan
{ position: absolute }
danz-index
untuk mencapai ini.Perbarui innerHTML div dengan javascript. Mudah dengan jQuery:
Itu dia! Cukup gaya div Anda, bukan kotak pilih. Saya belum menguji kode di atas sehingga Anda mungkin perlu mengubahnya. Tapi semoga Anda mendapatkan intinya.
Saya pikir solusi ini berdetak
{-webkit-appearance: none;}
. Apa yang harus dilakukan browser paling banyak adalah menentukan interaksi dengan elemen formulir, tetapi jelas bukan bagaimana awalnya ditampilkan pada halaman saat itu merusak desain situs.sumber
Coba dengan cara ini:
Kemudian, Anda dapat menggunakan gambar yang berbeda sebagai latar belakang dan menempatkannya:
Ada cara lain untuk browser moz:
Jika Anda memiliki lebar yang ditentukan untuk Anda pilih, properti ini akan menekan tombol dropbox default di bawah area yang dipilih.
Ini bekerja untuk saya! ;)
sumber
Meskipun bukan solusi lengkap saya telah menemukan bahwa ...
... bekerja sampai batas tertentu. Anda tidak dapat mengubah latar belakang (-warna atau -gambar) tetapi elemen tersebut dapat ditampilkan dengan warna: transparan. Tidak sempurna tapi ini awal dan Anda tidak perlu mengganti elemen tingkat sistem dengan js satu.
sumber
window
ada efeknya, sayangnya, saya perlu mengatur gambar latar belakang. Sangat disayangkan bahwa ini tidak terlalu baik di Firefox.media="print"
blok css denganselect {-moz-appearance: window;}
dan akan menghapus panah dan latar belakang dari semua pilihan pada FF (untuk browser lain coba penampilan atau -webkit-penampilan) sehingga mereka terlihat seperti teks atau judul biasaSaya rasa saya menemukan solusi yang kompatibel dengan FF31 !!!
Berikut adalah dua opsi yang dijelaskan dengan baik di tautan ini:
http://www.currelis.com/hiding-select-arrow-firefox-30.html
Saya menggunakan opsi 1: Rodrigo-Ludgero memposting perbaikan ini di Github, termasuk online demo. Saya menguji demo ini di Firefox 31.0 dan tampaknya berfungsi dengan benar. Diuji pada Chrome dan IE juga. Berikut ini adalah kode html:
dan css:
http://jsbin.com/pozomu/4/edit
Ini bekerja sangat baik untuk saya!
sumber
Sayangnya untuk Anda ini adalah "sesuatu yang mewah". Biasanya ini bukan tempat penulis web untuk mendesain ulang elemen formulir. Banyak browser yang sengaja tidak membiarkan Anda menata mereka, agar pengguna dapat melihat kontrol OS yang biasa mereka gunakan.
Satu-satunya cara untuk melakukan ini secara konsisten melalui browser dan sistem operasi, adalah menggunakan JavaScript dan mengganti
select
elemen dengan yang "DHTML".Artikel berikut menunjukkan tiga plugin berbasis jQuery yang memungkinkan Anda melakukan itu (ini agak lama, tapi saya tidak dapat menemukan apa pun saat ini)
http://www.queness.com/post/204/25-jquery-plugins-that-enhance-and-beautify-html-form-elements#1
sumber
appearance
properti adalah untuk memberikan pengembang kontrol atas tampilan elemen bentuk, karena menggunakan JavaScript untuk itu adalah solusi yang mengerikan. Peramban seharusnya tidak membuat keputusan tentang bagaimana sesuatu terlihat di halaman - ini adalah keputusan UX, bukan keputusan vendor browser. Sayangnya, itu belum didukung dengan baik. Mungkin satu tahun lagi.sumber
Saya styling yang dipilih hanya suka ini
Ini berfungsi untuk saya di FF, Safari, dan Chrome di semua versi yang telah saya uji.
Dalam IE saya masukkan:
Anda juga dapat: .yourclass :: - ms-expand {display: none; } .Anda :: - ms-exapan {display: none; }
sumber
Saya tahu pertanyaan ini agak lama, tetapi karena muncul di google, dan ini adalah solusi "baru":
appearance: normal
Tampaknya berfungsi baik di Firefox untuk saya (versi 5 sekarang). tetapi tidak di Opera dan IE8 / 9Sebagai solusi untuk Opera dan IE9, saya menggunakan
:before
pseudoselector untuk membuat kotak putih baru dan meletakkannya di atas panah.Sayangnya, di IE8 ini tidak berhasil. Kotak ini diberikan dengan benar, tetapi panah tetap saja mencuat ...: - /
Menggunakan
select:before
berfungsi dengan baik di Opera, tetapi tidak di IE. Jika saya melihat alat pengembang, saya melihatnya membaca aturan dengan benar, dan kemudian mengabaikannya (mereka dicoret). Jadi saya menggunakan<span class="selectwrap">
yang sebenarnya<select>
.Anda mungkin perlu mengubah ini sedikit, tetapi ini bekerja untuk saya!
Penafian: Saya menggunakan ini untuk mendapatkan salinan halaman web dengan bentuk yang bagus sehingga saya tidak perlu membuat halaman kedua. Saya bukan 1337 haxx0r yang menginginkan scrollbar merah,
<marquee>
tag, dan yang lainnya :-) Harap jangan menerapkan style berlebihan pada formulir kecuali Anda memiliki alasan yang sangat bagus.sumber
-moz-appearance: normal
tampaknya tidak menjadi opsi yang valid di Fx 9, dan-moz-appearance: none
(yang valid) tidak menghapus panah bawah.<select> hi
.Gunakan
pointer-events
properti.Idenya di sini adalah untuk overlay elemen di atas panah drop down asli (untuk membuat custom kami) dan kemudian melarang event pointer di atasnya. [lihat posting ini ]
Berikut ini adalah FIDDLE yang berfungsi menggunakan metode ini.
Juga, dalam jawaban SO ini saya membahas ini dan metode lain secara lebih rinci.
sumber
Ini berfungsi (diuji pada Firefox 23.0.1):
sumber
radio-container
nilai untuk objek yang dipilih. Jelajahi referensi mozilla -moz-penampilan untuk mendapatkan nilai yang sesuai (saya menggunakanmenulist-text
yang menyembunyikan panah pilihan di FF 31)membangun jawaban oleh @ JoãoCunha, satu gaya css yang berguna untuk lebih dari satu browser
sumber
Lebih jauh ke jawaban Joao Cunha , masalah ini sekarang ada di Daftar ToDo Mozilla dan ditargetkan untuk ver 35.
Bagi yang menginginkan, berikut adalah solusi dari Todd Parker, dirujuk di blog Cunha, yang berfungsi hari ini:
http://jsfiddle.net/xvushd7x/
HTML:
CSS:
sumber
Sejak Firefox 35, "
-moz-appearance:none
" yang sudah Anda tulis dalam kode Anda, akhirnya hapus tombol panah yang diinginkan.Itu adalah bug yang dipecahkan sejak versi itu.
sumber
Banyak Diskusi Terjadi di sana-sini tetapi saya tidak melihat beberapa solusi yang tepat untuk masalah ini. Akhirnya diakhiri dengan menulis kode Jquery + CSS kecil untuk melakukan HACK ini di IE & Firefox.
Hitung Lebar Elemen (Elemen PILIH) menggunakan Jquery. Tambahkan Wrapper Around Element Pilih dan Keep overflow disembunyikan untuk elemen ini. Pastikan Lebar bungkus ini tepat. 25px kurang dari Elemen SELECT. Ini bisa dengan mudah dilakukan dengan Jquery. Jadi Sekarang Ikon Kita Telah Hilang ..! dan sekarang saatnya untuk menambahkan ikon gambar kita pada elemen SELECT ... !!! Cukup tambahkan beberapa baris sederhana untuk menambahkan latar belakang dan Anda semua Selesai .. !! Pastikan untuk menggunakan overflow tersembunyi untuk pembungkus luar,
Berikut adalah Contoh Kode yang dilakukan untuk Drupal. Namun dapat digunakan untuk orang lain juga dengan menghapus beberapa baris kode yang spesifik Drupal.
Solusi berfungsi di Semua Peramban IE, Chrome & Firefox Tidak perlu Menambah Hacks Fixed Widths Menggunakan CSS. Semuanya ditangani secara dinamis menggunakan JQuery.!
Lebih Dijelaskan di: - http://northwebstudio.com/blogs/1/jquery/remove-drop-down-arrow-html-select-element-using-jquery-and-css
sumber
coba css ini
Bekerja
sumber
The
appearance
properti dari CSS3 tidak memungkinkannone
nilai. Lihatlah referensi W3C . Jadi, apa yang Anda coba lakukan tidak valid (memang Chrome seharusnya tidak menerima juga).Maka sayangnya kami benar-benar tidak memiliki solusi lintas browser untuk menyembunyikan panah itu menggunakan CSS murni. Seperti yang ditunjukkan, Anda perlu JavaScript.
Saya sarankan Anda untuk mempertimbangkan menggunakan plugin selectBox jQuery . Ini sangat ringan dan dilakukan dengan baik.
sumber
none
ADALAH nilai yang diklaim Firefox untuk didukung: developer.mozilla.org/en/CSS/-moz-appearance Sementara elemen bentuk penataan, di masa lalu, hanya dapat dicapai melalui JavaScript, seluruh titikappearance
properti adalah untuk menjauh dari itu. Vendor browser tidak boleh membuat keputusan UX untuk pengembang. Sayangnya, sepertinya ini masih sedikit terlalu baru untuk digunakan secara efektif.-moz
menerimanone
(bahkan jika itu berhasil) tidak akan benar untuk menggunakannya. Bahkan lebih banyak tentang browser seperti Firefox, yang selalu membanggakan dirinya dengan persis mengikuti standar.Anda bisa menambah lebar kotak dan memindahkan panah lebih dekat ke kiri panah. ini kemudian memungkinkan Anda untuk menutupi panah dengan div putih kosong.
Lihat: http://jsbin.com/aniyu4/86/edit
sumber
Apakah Anda menerima perubahan kecil pada html?
Sesuatu seperti meletakkan tag div yang berisi tag pilih.
Lihatlah.
sumber
Atau, Anda dapat klip pilih. Sesuatu di sepanjang garis:
Ini harus klip 30px dari sisi kanan kotak pilih, menghilangkan panah. Sekarang menyediakan gambar latar belakang 170px dan voila, gaya pilih
sumber
Ini adalah retasan besar, tetapi
-moz-appearance: menulist-text
mungkin bisa melakukan trik.sumber
Saya mengalami masalah yang sama. Sangat mudah untuk membuatnya bekerja pada FF dan Chrome, tetapi pada IE (8+ yang perlu kami dukung) semuanya menjadi rumit. Solusi termudah yang dapat saya temukan untuk elemen pilih khusus yang berfungsi "di mana pun saya mencoba", termasuk IE8, menggunakan .customSelect ()
sumber
Peretasan yang bermanfaat bagi saya adalah untuk mengatur tampilan (memilih)
inline-flex
. Memotong panah keluar dari tombol pilih saya. Tanpa semua kode yang ditambahkan.-webkit appearance
masih dibutuhkan untuk Chrome, dll ...sumber
Jawaban Jordan Young adalah yang terbaik. Tetapi jika Anda tidak dapat atau tidak ingin mengubah HTML Anda, Anda dapat mempertimbangkan untuk menghapus panah bawah kustom yang disajikan untuk Chrome, Safari, dll dan meninggalkan panah default firefox - tetapi tanpa menghasilkan panah ganda. Tidak ideal, tetapi perbaikan cepat yang baik yang tidak menambahkan HTML apa pun dan tidak mengganggu tampilan khusus Anda di peramban lain.
CSS:
sumber
hackity hack ... solusi yang berfungsi di setiap browser yang saya uji (Safari, Firefox, Chrome). Tidak memiliki IE yang ada, jadi alangkah baiknya jika Anda dapat menguji dan berkomentar:
CSS, dengan gambar yang disandikan url:
http://codepen.io/anon/pen/myPEBy
Saya menggunakan: after-element untuk menutupi panah jelek. Karena pilih tidak mendukung: setelah, saya perlu pembungkus untuk bekerja dengannya. Sekarang, jika Anda mengklik panah, dropdown tidak akan mendaftarkannya ... kecuali browser Anda mendukung
pointer-events: none
, yang semua orang kecuali IE10- tidak: http://caniuse.com/#feat=pointer-eventsJadi bagi saya itu sempurna - solusi yang bagus, bersih, tidak sakit kepala, setidaknya dibandingkan dengan semua opsi lain yang termasuk javascript.
tl; dr:
Jika IE10 (atau lebih rendah) Pengguna mengklik panah, itu tidak akan berfungsi. Bekerja cukup baik untukku ...
sumber
Jika Anda tidak keberatan mengutak-atik JS, saya menulis sebuah plugin jQuery kecil yang membantu Anda melakukannya. Dengan itu Anda tidak perlu khawatir tentang awalan vendor.
Fiddle di sini: JS Fiddle
Syaratnya adalah Anda harus mengatur pemilihan dari awal (ini berarti mengatur latar belakang dan batas), tetapi Anda mungkin tetap ingin melakukan ini.
Juga karena fungsi menggantikan pemilihan asli dengan div, Anda akan kehilangan gaya yang dilakukan secara langsung pada pemilih pilih di CSS Anda. Jadi berikan elemen pilih kelas dan gaya kelas.
Mendukung sebagian besar browser modern, jika Anda ingin menargetkan browser yang lebih lama, Anda dapat mencoba versi jQuery yang lebih lama, tetapi mungkin harus mengganti on () dengan bind () pada fungsi (tidak diuji)
sumber
Jawaban lain sepertinya tidak berhasil untuk saya, tetapi saya menemukan retasan ini. Ini bekerja untuk saya (Juli 2014)
Dalam kasus saya, saya juga memiliki bidang input woocommerce jadi saya menggunakan ini
Diperbarui jawaban saya untuk menunjukkan pilih daripada input
sumber