Katakanlah saya memiliki cuplikan html seperti ini:
<div style="width:300px;">
<label for="MyInput">label text</label>
<input type="text" id="MyInput" />
</div>
Ini bukan kode persis saya, tetapi yang penting adalah ada label dan input teks pada baris yang sama dalam wadah dengan lebar tetap. Bagaimana cara mengatur input untuk mengisi sisa lebar wadah tanpa pembungkus dan tanpa mengetahui ukuran label?
Jawaban:
sama seperti semua orang membenci tabel untuk tata letak, mereka membantu dengan hal-hal seperti ini, baik menggunakan tag tabel eksplisit atau menggunakan tampilan: sel-tabel
sumber
Berikut ini adalah solusi sederhana dan bersih tanpa menggunakan JavaScript atau hack tata letak tabel. Ini mirip dengan jawaban ini: Input lebar teks otomatis mengisi 100% dengan elemen lain mengambang
Penting untuk membungkus bidang input dengan rentang yang
display:block
. Hal berikutnya adalah tombol harus didahulukan dan kolom input kedua.Kemudian Anda dapat melayang tombol ke kanan dan bidang input mengisi ruang yang tersisa.
Biola sederhana: http://jsfiddle.net/v7YTT/90/
Pembaruan 1: Jika situs web Anda ditargetkan hanya untuk peramban modern, saya sarankan menggunakan kotak fleksibel . Di sini Anda dapat melihat dukungan saat ini .
Pembaruan 2: Ini bahkan berfungsi dengan beberapa tombol atau elemen lain yang berbagi sepenuhnya dengan bidang input. Berikut ini sebuah contoh .
sumber
Saya sarankan menggunakan Flexbox:
Pastikan untuk menambahkan awalan vendor yang tepat!
sumber
label
? Saya akan sangat tertarik pada bagaimana HTML dari pertanyaan aslinya dapat ditata menggunakanborder-box
...flex: 2
dan tidakflex: 1
?Silakan gunakan flexbox untuk ini. Anda memiliki wadah yang akan melenturkan anak-anaknya menjadi satu baris. Anak pertama mengambil ruangnya sesuai kebutuhan. Yang kedua melenturkan untuk mengambil semua ruang yang tersisa:
sumber
row
secara default, Anda tidak perlu menentukannya.Cara termudah untuk mencapai ini adalah:
CSS:
HTML:
Sepertinya: http://jsfiddle.net/JwfRX/
sumber
Trik yang sangat mudah adalah menggunakan
CSS calc
formula. Semua browser modern, IE9, berbagai browser seluler harus mendukung ini.sumber
Anda dapat mencoba ini:
sumber
Jika Anda menggunakan Bootstrap 4:
Lebih baik lagi, gunakan apa yang ada di dalam Bootstrap:
https://jsfiddle.net/nap1ykbr/
sumber