Saya punya input html.
Inputnya padding: 5px 10px;
saya ingin 100% dari lebar div induk (yang cair).
Namun menggunakan width: 100%;
menyebabkan input menjadi 100% + 20px
bagaimana saya bisa mengatasi ini?
html
css
width
fluid-layout
Hailwood
sumber
sumber
input
dan mendukung IE7Jawaban:
box-sizing: border-box
adalah cara cepat dan mudah untuk memperbaikinya:Ini akan bekerja di semua browser modern , dan IE8 +.
Berikut ini demo: http://jsfiddle.net/thirtydot/QkmSk/301/
Versi awalan peramban (
-webkit-box-sizing
, dll.) Tidak diperlukan di peramban modern.sumber
Ini sebabnya kami punya
box-sizing
CSS.Saya telah mengedit contoh Anda, dan sekarang ini berfungsi di Safari, Chrome, Firefox, dan Opera. Lihat: http://jsfiddle.net/mathias/Bupr3/ Yang saya tambahkan adalah ini:
Sayangnya browser lama seperti IE7 tidak mendukung ini. Jika Anda mencari solusi yang berfungsi di IE lama, lihat jawaban lain.
sumber
Gunakan pengisi dalam persentase juga dan hapus dari lebar:
sumber
Anda dapat melakukannya tanpa menggunakan
box-sizing
dan tidak menghapus solusi sepertiwidth~=99%
.Demo di jsFiddle :
padding
danborder
margin
=border-width
+horizontal padding
padding
sama denganmargin
dari langkah sebelumnyaMarkup HTML:
CSS:
sumber
Gunakan css calc ()
Sangat sederhana dan mengagumkan.
Seperti terlihat di sini: Lebar Div 100% dikurangi jumlah piksel tetap
Oleh webvitaly ( https://stackoverflow.com/users/713523/webvitaly )
Sumber asli: http://web-profile.com.ua/css/dev/css -width-100prc-minus-100px /
Hanya menyalin ini di sini, karena saya hampir melewatkannya di utas lainnya.
sumber
Dengan asumsi saya berada dalam wadah dengan bantalan 15px, inilah yang selalu saya gunakan untuk bagian dalam:
Itu akan meregangkan bagian dalam untuk apa pun lebar itu harus kurang dari 15px di kedua sisi.
sumber
width:auto
diterapkan keinput
bidang?Anda dapat mencoba beberapa trik penentuan posisi. Anda dapat memasukkan input dalam div dengan
position: relative
dan ketinggian tetap, kemudian pada input milikiposition: absolute; left: 0; right: 0;
, dan bantalan apa pun yang Anda suka.Contoh langsung
sumber
<input>
elemen - elemen di Firefox (idk tentang IE). Ini bekerja dengan<div>
s. Dan tidak,display: block
pada<input>
tidak berhasil juga: - /Berikut adalah rekomendasi dari codeontrack.com , yang memiliki contoh solusi yang baik:
sumber
Pindahkan padding kotak input ke elemen pembungkus.
Lihat contoh di sini: http://jsfiddle.net/L7wYD/1/
sumber
Cukup pahami perbedaan antara lebar: otomatis; dan lebar: 100%; Lebar: otomatis; akan (OTOMATIS) MATERI menghitung lebar agar sesuai dengan yang diberikan dengan pembungkus div termasuk padding. Lebar 100% memperluas lebar dan menambahkan bantalan.
sumber
Bagaimana dengan membungkusnya dalam wadah. Container harus memiliki gaya seperti:
sumber
Coba ini:
sumber
Bagi saya, menggunakan
margin:15px;padding:10px 0 15px 23px;width:100%
, hasilnya adalah ini:Solusi bagi saya adalah menggunakan
width:auto
alih-alihwidth:100%
. Kode baru saya adalah:margin:15px;padding:10px 0 15px 23px;width:auto
. Kemudian elemen disejajarkan dengan benar:sumber
Saya memiliki masalah yang sama. Perbaiki seperti ini:
sumber
Kamu bisa melakukan ini:
sumber