Untuk beberapa alasan div saya tidak akan terpusat secara horizontal di div yang berisi:
.row {
width: 100%;
margin: 0 auto;
}
.block {
width: 100px;
float: left;
}
<div class="row">
<div class="block">Lorem</div>
<div class="block">Ipsum</div>
<div class="block">Dolor</div>
</div>
Dan terkadang ada div baris dengan hanya satu div blok di dalamnya. Apa yang saya lakukan salah?
Jawaban:
Untuk mencapai apa yang Anda coba lakukan:
Pertimbangkan untuk menggunakan
display: inline-block
daripadafloat
.sumber
Coba ini:
DEMO
memiliki
margin: 0 auto;
bersama denganwidth: 100%
sia-sia karena elemen Anda akan mengambil ruang penuh.float: left
akan mengapung elemen ke kiri, sampai tidak ada ruang tersisa, sehingga mereka akan pergi ke baris baru. Gunakandisplay: inline-block
untuk dapat menampilkan elemen sebaris, tetapi dengan kemampuan untuk memberikan ukuran (berlawanan dengandisplay: inline
lebar / tinggi yang diabaikan)sumber
Penjajaran di CSS telah menjadi mimpi buruk. Untungnya, standar baru diperkenalkan oleh W3C pada tahun 2009: Kotak Fleksibel . Ada tutorial bagus tentang itu di sini . Secara pribadi saya merasa jauh lebih logis dan lebih mudah dipahami daripada metode lain.
sumber
Menggunakan FlexBox:
Tren terbaru adalah menggunakan Flex atau CSS Grid daripada menggunakan Float. Namun, masih ada 1% browser yang tidak mendukung Flex. Tapi siapa yang benar-benar peduli dengan pengguna IE lama;)
Biola: Periksa Di Sini
sumber
Contoh kerja lainnya , menggunakan
display: inline-block
dantext-align: center
HTML :
CSS :
Biola: http://jsfiddle.net/fNvgS/
sumber
Meskipun tidak mencakup pertanyaan ini (karena Anda ingin menyelaraskan
<div>
s di dalam wadah) tetapi terkait langsung: jika Anda ingin menyelaraskan hanya satu div secara horizontal, Anda dapat melakukan ini:sumber
Jika elemen akan ditampilkan dalam satu baris dan IE 6/7 tidak menjadi masalah, pertimbangkan untuk menggunakan
display: table
dandisplay: table-cell
sebagai gantinyafloat
.inline-block
mengarah ke celah horizontal antar elemen dan membutuhkan penekanan pada celah tersebut. Cara paling sederhana adalah mengaturfont-size: 0
elemen induk dan kemudian mengembalikanfont-size
elemen anak yang memilikidisplay: inline-block
dengan mengaturfont-size
ke nilaipx
ataurem
.sumber
Saya mencoba jawaban yang diterima, tetapi akhirnya menemukan bahwa:
Bekerja dengan baik sejauh ini.
sumber
Saya telah menggunakan dua pendekatan ini ketika saya perlu menangani penyelarasan div horizontal.
first ( Center Aligning Menggunakan Properti margin ):
Mengatur margin kiri dan kanan ke otomatis menentukan bahwa mereka harus membagi margin yang tersedia secara merata. Perataan tengah tidak berpengaruh jika lebarnya 100%.
dan yang kedua:
Menggunakan pendekatan kedua adalah nyaman ketika Anda memiliki beberapa elemen dan Anda ingin semuanya dipusatkan di satu sel tabel (yaitu beberapa tombol dalam satu sel).
sumber