Saya baru mengenal HTML dan saya mencoba mempelajari cara menggunakan formulir.
Masalah terbesar yang saya alami sejauh ini adalah menyelaraskan formulir. Berikut adalah contoh file HTML saya saat ini:
<form>
First Name:<input type="text" name="first"><br />
Last Name:<input type="text" name="last"><br />
Email:<input type="text" name="email"><br />
</form>
Masalahnya adalah, kotak bidang setelah 'Email' sangat berbeda dalam hal spasi dibandingkan dengan nama depan, dan nama belakang. Apa cara yang 'tepat' untuk membuatnya sehingga mereka 'berbaris' pada dasarnya?
Saya mencoba mempraktikkan bentuk dan sintaks yang baik ... banyak orang mungkin melakukan ini dengan CSS. Saya tidak yakin, saya baru mempelajari dasar-dasar HTML sejauh ini.
Jawaban:
Contoh lain, ini menggunakan CSS, saya hanya meletakkan formulir di div dengan kelas kontainer. Dan menetapkan bahwa elemen masukan yang terkandung di dalamnya harus 100% dari lebar penampung dan tidak memiliki elemen di kedua sisinya.
sumber
Jawaban yang diterima (menyetel lebar eksplisit dalam piksel) menyulitkan untuk membuat perubahan, dan berhenti saat pengguna Anda menggunakan ukuran font yang berbeda. Menggunakan tabel CSS, di sisi lain, bekerja dengan baik:
Ini JSFiddle: http://jsfiddle.net/DaS39/1/
Dan jika Anda membutuhkan label rata kanan, cukup tambahkan
text-align: right
ke label: http://jsfiddle.net/DaS39/EDIT: Satu lagi catatan singkat: tabel CSS juga memungkinkan Anda bermain dengan kolom: misalnya, jika Anda ingin membuat kolom input mengambil ruang sebanyak mungkin, Anda dapat menambahkan yang berikut ini ke formulir Anda
Anda mungkin ingin menambahkan
white-space: nowrap
kelabels
dalam kasus itu.sumber
Solusi sederhana untuk Anda jika Anda baru mengenal HTML, cukup gunakan tabel untuk menyusun semuanya.
sumber
Saya merasa jauh lebih mudah untuk mengubah tampilan label menjadi blok-sebaris dan mengatur lebar
sumber
Anda harus menggunakan meja. Mengenai struktur logis , datanya berbentuk tabel: inilah mengapa Anda ingin meratakannya, karena Anda ingin menunjukkan bahwa label tidak hanya terkait dengan kotak masukannya tetapi juga satu sama lain, dalam struktur dua dimensi.
[pertimbangkan apa yang akan Anda lakukan jika Anda memiliki nilai string atau numerik untuk ditampilkan, bukan kotak masukan.]
sumber
Untuk ini, saya lebih suka mempertahankan semantik HTML yang benar, dan menggunakan CSS sesederhana mungkin.
Sesuatu seperti ini akan melakukan pekerjaan itu:
Namun satu kelemahan: Anda mungkin harus memilih lebar label yang tepat untuk setiap formulir, dan ini tidak mudah jika label Anda bisa dinamis (label I18N misalnya).
sumber
Saya penggemar berat menggunakan daftar definisi.
Mereka mudah ditata menggunakan CSS, dan menghindari stigma menggunakan tabel untuk tata letak.
sumber
div
s (add
hanya memiliki margin kiri ~ 40px), dan menghindari kebingungan semantik. Selain itu, tidak satu pun dari ini yang berbaris label / input pada baris yang sama.menggunakan css
ini memberi Anda sesuatu seperti:
sumber
clear
untuk menghindari formulir menumpuk, katakanlah, lebar yang lebih rendahMetode tradisional adalah dengan menggunakan tabel.
Contoh:
Namun, banyak yang berpendapat bahwa tabel membatasi dan lebih memilih CSS. Manfaat menggunakan CSS adalah Anda dapat menggunakan berbagai elemen. Dari div, daftar terurut dan tak berurutan, Anda bisa mencapai tata letak yang sama.
Pada akhirnya, Anda pasti ingin menggunakan apa yang menurut Anda paling nyaman.
Petunjuk: Tabel mudah digunakan.
sumber
Untuk dasar-dasarnya, Anda dapat mencoba menyelaraskannya di tabel. Namun penggunaan tabel buruk untuk tata letak karena tabel dimaksudkan untuk konten.
Yang bisa Anda gunakan adalah teknik mengambang CSS.
Kode CSS
HTML
Artikel terperinci yang saya tulis dapat ditemukan menjawab pertanyaan masalah float IE7 : masalah float right IE7
sumber
ul
tag.)Saya tahu ini telah dijawab, tetapi saya menemukan cara baru untuk menyelaraskannya dengan baik - dengan manfaat tambahan - lihat http://www.gargan.org/en/Web_Development/Form_Layout_with_CSS/
pada dasarnya Anda menggunakan elemen label di sekitar input dan menyelaraskan menggunakan itu:
dan kemudian dengan css Anda cukup menyelaraskan:
sumber
Jawaban Clément sejauh ini adalah yang terbaik. Berikut jawaban yang agak lebih baik, menunjukkan kemungkinan perataan yang berbeda, termasuk tombol rata kiri-tengah-kanan:
Saya menambahkan beberapa padding di sebelah kanan semua label (
padding-right:8px
) hanya untuk membuat contoh terlihat sedikit kurang mengerikan, tetapi itu harus dilakukan lebih hati-hati dalam proyek nyata (menambahkan padding ke semua elemen lain juga akan menjadi ide yang bagus).sumber
css Saya biasa mengatasi masalah ini, mirip dengan Gjaa tetapi gaya lebih baik
Berikut adalah HTML saya, digunakan khusus untuk formulir pendaftaran sederhana tanpa kode php
Ini sangat sederhana, dan saya baru saja mulai, tetapi berhasil dengan cukup baik
sumber
Sisipkan tag input di dalam unordered list. Buatlah style-type tidak ada. Berikut contohnya.
Bekerja untuk saya!
sumber
UL
hanya akan menjauhkan konten dari margin, tidak menyelaraskan apa pun. Menempatkaninput
s diLI
hanya akan menambahkan poin di depannya (ya, mereka akan disejajarkan, sebagai daftar, bukan terhadap label). Selain itu, "Input2" akan melekat padainput
elemen sebelumnya , karenaLI
tidak ditutup (tidak ada</li>
) dan tidak ada awal<li>
untuk "label" itu, sehingga akan diperlakukan sebagaimana mestinya, teks umum, oleh karena itu, digabungkan ke elemen sebelumnya. Terakhir, kode mengalami kesalahan,<ul/>
harus ditutup</ul>
.Di CSS Anda harus mendeklarasikan label dan input sebagai display: inline-block dan memberikan lebar sesuai dengan kebutuhan Anda. Semoga ini bisa membantu Anda. :)
sumber
Cukup tambahkan
Letakkan saja di tag pembuka.
sumber
form
tidak memilikialign
atribut (dan bahkan jika ada, itu tidak akan digunakan lagi untuk penggunaan gaya / CSS). Juga, tag penutupnya salah, itu seharusnya</form>
. Dimungkinkan untuk menentukanstyle="text-align:center"
di dalamform
, apa yang akan menyelaraskan seluruh konten formulir di tengah, tapi itu bukan tentang pertanyaan aslinya. Ini tidak akan pernah menyelaraskan label dengan bidang masukannya (ya, saya menguji di Firefox 75, hanya untuk memastikan).