Saya memiliki kode yang berfungsi di sini: http://jsfiddle.net/WVm5d/ (Anda mungkin perlu membuat jendela hasil lebih besar untuk melihat efek align center)
Pertanyaan
Kode berfungsi dengan baik tetapi saya tidak suka memilikinya display: table;
. Ini satu-satunya cara saya bisa membuat pusat menyelaraskan kelas bungkus. Saya pikir akan lebih baik jika ada cara untuk menggunakan display: block;
atau display: inline-block;
. Apakah mungkin menyelesaikan pusat penyelarasan dengan cara lain?
Menambahkan fix dengan ke wadah bukan pilihan bagi saya.
Saya juga akan menempelkan kode saya di sini jika tautan JS Fiddle rusak di masa mendatang:
body {
background: #bbb;
}
.wrap {
background: #aaa;
margin: 0 auto;
display: table;
overflow: hidden;
}
.sidebar {
width: 200px;
float: left;
background: #eee;
}
.container {
margin: 0 auto;
background: #ddd;
display: block;
float: left;
padding: 5px;
}
.box {
background: #eee;
border: 1px solid #ccc;
padding: 10px;
margin: 5px;
float: left;
}
.box:nth-child(3n+1) {
clear: left;
}
<div class="wrap">
<div class="sidebar">
Sidebar
</div>
<div class="container">
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
</div>
<div class="sidebar">
Sidebar
</div>
</div>
Coba ini. Saya menambahkan
text-align: center
ke tubuh dandisplay:inline-block
untuk membungkus, dan kemudian dihapusdisplay: table
sumber
white-space: nowrap;
pada mereka juga.body
pusat teks-rata ?? ini kedengarannya seperti kerja keras yang sangat besar bagi sayaJika Anda memiliki
<div>
withtext-align:center;
, maka teks di dalamnya akan dipusatkan berkenaan dengan lebar elemen kontainer itu.inline-block
elemen diperlakukan sebagai teks untuk tujuan ini, sehingga mereka juga akan terpusat.sumber
Anda juga dapat melakukan ini dengan memposisikan, mengatur div induk ke relatif dan div anak ke absolut.
sumber
Anda tidak perlu menggunakan "display: table". Alasan margin Anda: 0 upaya pemusatan otomatis tidak berfungsi karena Anda tidak menentukan lebar.
Ini akan bekerja dengan baik:
Anda tidak perlu menentukan tampilan: blok karena div itu akan diblokir secara default. Anda mungkin juga bisa kehilangan kelebihan: tersembunyi.
sumber
Mirip dengan jawaban @ vijayscode, ini akan memusatkan elemen blok-inline secara horizontal (tetapi juga tanpa perlu memodifikasi gaya induknya):
sumber
Saya baru saja mengubah 2 parameter:
Demo Langsung
sumber
Artikel hebat yang saya temukan yang paling berhasil bagi saya adalah menambahkan% ke ukuran
sumber
Cukup gunakan:
line-height:50px
Ganti "50px" dengan tinggi yang sama dengan div Anda.
sumber
line-height
.text-align: center;
. Menyesuaikan tinggi-garis adalah solusi untuk pemusatan vertikal, meskipun bukan solusi yang sangat kuat untuk blok-inline.