Unicode bekerja dengan baik untuk saya di jsfiddle, tetapi ketika saya mencoba menyalin / menempelkannya ke dalam kode saya, itu tidak benar menerjemahkan. Jadi bagi mereka yang memiliki masalah itu, penyandian HTML untuk karakter menggambar kotak unicode horizontal adalah & # 9472; fileformat.info/info/unicode/char/2500/index.htm dan ada juga opsi yang lebih berat di & # 9473; fileformat.info/info/unicode/char/2501/index.htm
JeffG
1
di Seluler Firefox (dan mungkin peramban seluler lainnya) disabledopsi ini ditampilkan dengan tombol radio yang dinonaktifkan di sebelah kanan ...
GoTo
tetapi optgroup dirender secara berbeda pada PC vs seluler sehingga opsi yang dinonaktifkan masih merupakan solusi terbaik.
GoTo
1
Pengkodean file html juga penting untuk karakter "─" muncul sebagai garis, bukan omong kosong. UFT8 dengan BOM mungkin merupakan pilihan yang baik.
Alih-alih menempatkan label pada optgroup, coba tambahkan ini ke stylesheet Anda: optgroup + optgroup {border-top: 1px hitam pekat} Terlihat jauh lebih murahan daripada sekelompok tanda hubung.
Laurence Gonsalves
2
Label Optgroup harus menggambarkan grup. Jika browser diimplementasikan sesuai screenshot di spec HTML 4.01, maka pengguna akan dihadapkan dengan deretan tanda hubung dan harus memeriksa masing-masing untuk mengetahui apa yang ada di baliknya.
Quentin
2
@Laurence: IE7 tidak mendukung gaya css pada elemen optgroup atau opsi. Setidaknya tidak berbatasan
grom
1
<optgroup style = "border-top: 1px bertitik #ccc; margin: 5px 0;"> </optgroup> - terlihat keren setidaknya di firefox!
Ben Sinclair
1
Optgroup kosong seperti ini bukan html legal. Anda akan mendapatkan kesalahan validasi jika menggunakannya. Saya lebih suka jawaban james.garriss.
Ariel
22
Ini adalah utas lama, tetapi karena tidak ada yang memposting respons yang sama, saya akan menambahkan ini karena ini adalah cara pemisahan yang saya sukai.
Saya menemukan menggunakan tanda hubung dan semacam itu agak merusak pemandangan karena bisa jatuh jauh dari lebar kotak pilihan. Jadi, saya lebih suka menggunakan CSS untuk membuat pemisah saya .. pewarnaan latar belakang yang sederhana.
<select><optionstyle="background-color:#cccccc;"disabledselected>Select An Option</option><option>First Option</option><option>Second</option><optionstyle="font-size:1pt;background-color:#000000;"disabled> </option><option>Third</option><option>Fourth</option><optionstyle="font-size:1pt;background-color:#000000;"disabled> </option><option>Fifth</option><option>Sixth</option></select>
Bagus ! Saya menggunakan min-height: 1px; max-height: 1px; bantalan: 0; bukannya ukuran font: 1pt; untuk garis 1px
kofifus
15
Jika Anda tidak ingin menggunakan elemen optgroup, masukkan tanda hubung di elemen opsi dan berikan atribut yang dinonaktifkan. Itu akan terlihat, tetapi abu-abu.
Halo James, saya juga menyukai solusi ini tetapi pembaca layar akan membaca "opsi menonaktifkan dasbor dasbor dasbor ..." yang mungkin sangat membingungkan bagi pengguna yang dinonaktifkan ... apakah Anda memiliki gagasan tentang bagaimana kita bisa menghindari ini? Terima kasih!
Julio
1
Apakah mungkin untuk menambahkan kelas ke elemen visual yang tidak ingin Anda ucapkan, lalu menambahkan perintah ARIA yang menyembunyikan / menonaktifkan kelas? Mungkin sesuatu seperti salah satu teknik yang digunakan di sini? asurkov.blogspot.com/2012/02/…
james.garriss
Sebenarnya, @Julio, Anda harus memposting ini sebagai pertanyaan baru. Saya ingin tahu, tetapi saya belum pernah memprogram untuk pembaca layar sebelumnya.
james.garriss
9
Alih-alih hyphon biasa saya menggantinya menggunakan simbol bar horisontal dari set karakter yang diperluas, itu tidak akan terlihat sangat bagus jika pengguna di negara lain yang menggantikan karakter itu tetapi berfungsi dengan baik untuk saya. Ada serangkaian karakter berbeda yang dapat Anda gunakan untuk beberapa efek hebat dan tidak ada css yang terlibat.
Jawaban dapat ditingkatkan dengan contoh jsfiddle. Ini sepertinya solusi paling built-in yang tidak mengandalkan efek samping atau peretasan, tetapi akan lebih baik untuk membandingkan visual dari jawaban lain.
raider33
Tidak berfungsi di banyak browser. (seperti biasa, input menjadi rasa sakit di pantat)
Empat puluh
5
Saya membuat komentar @Laurence Gonsalves menjadi jawaban karena itu satu-satunya yang bekerja secara semantik dan tidak terlihat seperti retasan.
Coba tambahkan ini ke stylesheet Anda:
optgroup + optgroup { border-top:1px solid black }
Apalagi terlihat murahan daripada sekelompok tanda hubung.
Ini sebenarnya cara yang tepat untuk melakukannya (yang penting, itu tidak menambahkan konten yang tidak berarti). Saya suka gaya dengan cara ini (menambahkan beberapa ruang vertikal tambahan di sekitar pemisah):optgroup { padding-bottom: 8px; } optgroup:not(:first-child) { padding-top: 8px; border-top: solid 1px #666; }
Nicolas Le Thierry d'Ennequin
3
Cara lain adalah dengan menggunakan gambar latar belakang css 1x1 pada opsi yang sepertinya hanya bekerja dengan firefox dan memiliki fallback "----"
Jarak antar karakter ditentukan oleh font dan rendering engine. Misalnya saya melihat spasi di antara tanda hubung Anda pada Chrome (Windows) tetapi tidak pada Safari (Mac).
Jawaban:
Pendekatan opsi yang dinonaktifkan tampaknya terlihat terbaik dan didukung terbaik. Saya juga menyertakan contoh menggunakan optgroup.
optgroup (cara ini agak menyebalkan):
opsi dinonaktifkan (sedikit lebih baik):
Dan jika Anda ingin benar-benar mewah, gunakan karakter menggambar kotak unicode horizontal.
(PILIHAN TERBAIK!)
http://jsfiddle.net/JFDgH/2/
sumber
disabled
opsi ini ditampilkan dengan tombol radio yang dinonaktifkan di sebelah kanan ...Mencoba:
sumber
Ini adalah utas lama, tetapi karena tidak ada yang memposting respons yang sama, saya akan menambahkan ini karena ini adalah cara pemisahan yang saya sukai.
Saya menemukan menggunakan tanda hubung dan semacam itu agak merusak pemandangan karena bisa jatuh jauh dari lebar kotak pilihan. Jadi, saya lebih suka menggunakan CSS untuk membuat pemisah saya .. pewarnaan latar belakang yang sederhana.
sumber
Jika Anda tidak ingin menggunakan elemen optgroup, masukkan tanda hubung di elemen opsi dan berikan atribut yang dinonaktifkan. Itu akan terlihat, tetapi abu-abu.
sumber
Alih-alih hyphon biasa saya menggantinya menggunakan simbol bar horisontal dari set karakter yang diperluas, itu tidak akan terlihat sangat bagus jika pengguna di negara lain yang menggantikan karakter itu tetapi berfungsi dengan baik untuk saya. Ada serangkaian karakter berbeda yang dapat Anda gunakan untuk beberapa efek hebat dan tidak ada css yang terlibat.
sumber
Tentukan kelas dalam CSS:
Tulis dalam HTML:
sumber
Saya membuat komentar @Laurence Gonsalves menjadi jawaban karena itu satu-satunya yang bekerja secara semantik dan tidak terlihat seperti retasan.
Coba tambahkan ini ke stylesheet Anda:
Apalagi terlihat murahan daripada sekelompok tanda hubung.
sumber
optgroup { padding-bottom: 8px; } optgroup:not(:first-child) { padding-top: 8px; border-top: solid 1px #666; }
Cara lain adalah dengan menggunakan gambar latar belakang css 1x1 pada opsi yang sepertinya hanya bekerja dengan firefox dan memiliki fallback "----"
http://jsfiddle.net/yNecQ/6/
atau menggunakan javascript (jquery) ke:
http://tutorialzine.com/2010/11/better-select-jquery-css3/
lihat juga Bagaimana cara menambahkan garis horizontal dalam kontrol pilih html?
sumber
Jika hanya WebKit, Anda dapat menggunakan
<hr>
untuk membuat pemisah yang nyata.http://code.google.com/p/chromium/issues/detail?id=99534
sumber
Anda dapat menggunakan tanda hubung em "-". Tidak ada spasi yang terlihat di antara setiap karakter.
(Dalam beberapa font!)
Dalam HTML:
Atau dalam XHTML:
sumber
Yang ini selalu yang terbaik.
sumber
Anda dapat melakukan ini juga. itu mudah dan membuat daftar pilih drop down pembagi.
sumber
Saya memilih warna dan latar belakang alternatif bersyarat. Mengatur urutan dan dengan vue.js, saya melakukan sesuatu seperti ini:
sumber