Desain select
fungsionalitas dalam mewujudkan CSS, menurut saya, merupakan alasan yang cukup bagus untuk tidak menggunakannya.
Anda harus menginisialisasi elemen pilih dengan material_select()
, seperti yang disebutkan @ littleguy23. Jika tidak, kotak pilih bahkan tidak ditampilkan! Di aplikasi jQuery kuno, saya bisa menginisialisasinya di fungsi dokumen siap. Coba tebak, baik saya maupun banyak orang lain tidak menggunakan jQuery akhir-akhir ini, kami juga tidak menginisialisasi aplikasi kami di dokumen ready hook.
Pilihan yang dibuat secara dinamis . Bagaimana jika saya membuat pemilihan secara dinamis, seperti yang terjadi dalam kerangka kerja seperti Ember yang menghasilkan tampilan dengan cepat? Saya harus menambahkan logika di setiap tampilan untuk menginisialisasi kotak pilih setiap kali tampilan dibuat, atau menulis mixin tampilan untuk menanganinya untuk saya. Dan ini lebih buruk dari itu: ketika tampilan dibuat, dan dalam istilah Ember didInsertElement
disebut, pengikatan ke daftar opsi untuk kotak pilih mungkin belum diselesaikan, jadi saya perlu logika khusus mengamati daftar opsi untuk menunggu sampai itu diisi sebelum melakukan panggilan ke material_select
. Jika opsi berubah, semudah mungkin, material_select
tidak tahu tentang itu dan tidak memperbarui dropdown. Saya dapat menelepon material_select
lagi ketika opsi berubah, tetapi tampaknya itu tidak melakukan apa-apa (diabaikan).
Dengan kata lain, tampaknya asumsi desain di balik terwujudnya kotak pilih CSS adalah bahwa semuanya ada saat pemuatan halaman, dan nilainya tidak pernah berubah.
Implementasi . Dari sudut pandang estetika, saya juga tidak mendukung cara CSS mengimplementasikan dropdowns-nya, yaitu membuat rangkaian elemen bayangan paralel di tempat lain di DOM. Memang, alternatif seperti select2 melakukan hal yang sama, dan mungkin tidak ada cara lain untuk mendapatkan beberapa efek visual (benarkah?). Bagi saya, ketika saya memeriksa sebuah elemen, saya ingin melihat elemen tersebut, bukan versi bayangan di tempat lain yang dibuat secara ajaib oleh seseorang.
Saat Ember meruntuhkan tampilan, saya tidak yakin CSS yang terwujud meruntuhkan elemen bayangan yang telah dibuatnya. Sebenarnya, saya akan sangat terkejut jika itu terjadi. Jika teori saya benar, saat tampilan dibuat dan dihancurkan, DOM Anda akan tercemar dengan lusinan set dropdown bayangan yang tidak terhubung ke apa pun. Ini tidak hanya berlaku untuk Ember tetapi kerangka kerja front-end OPA berbasis template / MVC lainnya.
Binding . Saya juga belum bisa menemukan cara mendapatkan nilai yang dipilih di kotak dialog untuk mengikat kembali ke sesuatu yang berguna dalam kerangka kerja seperti Ember yang memanggil kotak pilih melalui {{view 'Ember.Select' value=country}}
antarmuka tipe. Dengan kata lain, ketika sesuatu dipilih, country
tidak diperbarui. Ini adalah pemecah kesepakatan.
Ombak . Ngomong-ngomong, masalah yang sama berlaku untuk efek "gelombang" pada tombol. Anda harus memulainya setiap kali tombol dibuat. Saya pribadi tidak peduli tentang efek gelombang, dan tidak mengerti tentang apa semua keributan itu, tetapi jika Anda memang menginginkan gelombang, ketahuilah bahwa Anda akan menghabiskan sebagian besar sisa hidup Anda dengan mengkhawatirkan cara melakukannya. menginisialisasi setiap tombol saat dibuat.
Saya menghargai usaha yang dilakukan oleh CSS yang terwujud, dan ada beberapa efek visual yang bagus di sana, tetapi itu terlalu besar dan memiliki terlalu banyak hal seperti di atas untuk menjadi sesuatu yang akan saya gunakan. Saya sekarang berencana untuk merobek CSS yang terwujud dari aplikasi saya dan kembali ke Bootstrap atau lapisan di atas Suit CSS. Alat Anda harus membuat hidup Anda lebih mudah, bukan lebih sulit.
<select class="browser-default">