Apa cara yang baik untuk mengatasi fakta yang tidak menguntungkan bahwa kode ini tidak akan berfungsi seperti yang diinginkan:
<div class="required">
<label>Name:</label>
<input type="text">
</div>
<style>
.required input:after { content:"*"; }
</style>
Di dunia yang sempurna, semua yang diperlukan input
akan mendapatkan tanda bintang kecil yang menunjukkan bahwa bidang tersebut diperlukan. Solusi ini tidak mungkin karena CSS dimasukkan setelah konten elemen, bukan setelah elemen itu sendiri, tetapi sesuatu seperti itu akan ideal. Di situs dengan ribuan bidang yang diperlukan, saya bisa memindahkan tanda bintang di depan input dengan satu perubahan ke satu baris ( :after
ke :before
) atau saya bisa memindahkannya ke akhir label ( .required label:after
) atau di depan label, atau ke posisi pada kotak yang berisi, dll ...
Ini penting bukan hanya jika saya berubah pikiran tentang di mana menempatkan tanda bintang di mana-mana, tetapi juga untuk kasus aneh di mana tata letak formulir tidak memungkinkan tanda bintang pada posisi standar. Itu juga bermain baik dengan validasi yang memeriksa formulir atau menyoroti kontrol yang tidak lengkap.
Terakhir, itu tidak menambahkan markup tambahan.
Apakah ada solusi bagus yang memiliki semua atau sebagian besar kelebihan dari kode mustahil?
sumber
required
atribut ke<input...
developer.mozilla.org/en-US/docs/Web/HTML/Element/input/…Jawaban:
Apakah itu yang ada dalam pikiran Anda?
http://jsfiddle.net/erqrN/1/
Tampilkan cuplikan kode
Lihat https://developer.mozilla.org/en-US/docs/Web/CSS/pseudo-elements
sumber
*
tetapi itu berarti bahwa saya harus secara manual menempatkan jarak untuk setiap panjang input formulir, dan tidak akan dapat memiliki input fleksibel.Biasakan dengan struktur persis Anda: http://jsfiddle.net/bQ859/
sumber
Meskipun ini adalah jawaban yang diterima, silakan mengabaikan saya dan menggunakan
:after
sintaks yang disarankan di bawah. Solusi saya tidak dapat diakses.Hasil yang serupa dapat dicapai dengan menggunakan gambar latar belakang dari sebuah gambar asterisk dan mengatur latar belakang label / input / div luar dan lapisan ukuran gambar asterisk. Sesuatu seperti ini:
Ini akan menempatkan tanda bintang DI DALAM kotak teks, tetapi menempatkan yang sama pada
div.required
bukannya.required input
mungkin akan lebih apa yang Anda cari, jika sedikit kurang elegan.Metode ini tidak memerlukan input tambahan.
sumber
Untuk memasukkannya dengan tepat KE input seperti yang ditunjukkan pada gambar berikut:
Saya menemukan pendekatan berikut:
Situs tempat saya bekerja diberi kode menggunakan tata letak tetap sehingga tidak masalah bagi saya.
Saya tidak yakin itu bagus untuk desain cair.
sumber
tulis dalam CSS
dan HTML
sumber
<label class="control-label">...</label>
. Tapi itu berhasil (Y)sumber
radial-gradient
istilahbackground-image
? Saya tidak bisa mendapatkan sintaks ini untuk menikah dengan developer.mozilla.org/en-US/docs/Web/CSS/radial-gradient namun bekerja dengan benar ketika saya mencobanya.Gambar memiliki ruang 20px di sebelah kanan untuk tidak tumpang tindih dengan panah dropdown pilih
Dan terlihat seperti ini:
sumber
Gunakan jQuery dan CSS
sumber
Saya pikir ini adalah cara yang efisien untuk dilakukan, mengapa sangat sakit kepala
sumber
Ini 2019 dan jawaban sebelumnya untuk masalah ini tidak digunakan
Kotak CSS adalah cara untuk melakukan formulir pada 2019 karena Anda dapat memiliki label sebelum input Anda tanpa memiliki div, bentang, bentang dengan tanda bintang tambahan di dan peninggalan lainnya.
Di sinilah kita akan pergi dengan CSS minimal:
HTML untuk yang di atas:
Teks Placeholder dapat ditambahkan juga dan sangat disarankan. (Saya hanya menjawab mid-form ini).
Sekarang untuk variabel CSS:
CSS untuk elemen formulir:
Formulir itu sendiri harus dalam kotak CSS:
Nilai untuk kolom dapat diatur ke
1fr auto
atau1fr
dengan apa pun seperti<p>
tag dalam formulir yang ditetapkan untuk rentang 1 / -1. Anda mengubah variabel dalam kueri media Anda sehingga Anda memiliki kotak input menjadi lebar penuh di ponsel dan sesuai di atas pada desktop. Anda juga dapat mengubah celah jaringan di ponsel jika diinginkan dengan menggunakan pendekatan variabel CSS.Ketika kotak-kotak itu valid maka Anda harus mendapatkan tanda centang hijau alih-alih tanda bintang.
SVG dalam CSS adalah cara untuk menyelamatkan browser dari keharusan melakukan bolak-balik ke server untuk mendapatkan gambar tanda bintang. Dengan cara ini Anda dapat menyempurnakan tanda bintang, contoh-contoh di sini berada pada sudut yang tidak biasa, Anda dapat mengeditnya karena ikon SVG di atas sepenuhnya dapat dibaca. Kotak view juga dapat diubah untuk menempatkan tanda bintang di atas atau di bawah pusat.
sumber
sumber
Contoh ini menempatkan simbol tanda bintang di depan label untuk menunjukkan input tertentu sebagai bidang wajib. Saya mengatur properti CSS menggunakan% dan em untuk memastikan halaman web saya responsif. Anda dapat menggunakan px atau unit absolut lainnya jika Anda mau.
sumber
Yang Anda butuhkan adalah: pemilih yang diperlukan - itu akan memilih semua bidang dengan atribut 'wajib' (jadi tidak perlu menambahkan kelas tambahan). Kemudian - masukan gaya sesuai dengan kebutuhan Anda. Anda dapat menggunakan pemilih ': setelah' dan menambahkan tanda bintang dengan cara yang disarankan di antara jawaban lainnya
sumber
Anda dapat mencapai hasil yang diinginkan dengan merangkum kode HTML dalam tag div yang berisi kelas "wajib" diikuti oleh kelas "formulir-grup". * Namun ini hanya berfungsi jika Anda memiliki Bootstrap.
sumber
Bagi mereka yang berakhir di sini, tetapi memiliki jQuery:
sumber