Anda bisa menggunakan line-height: 50px;
, Anda tidak perlu di vertical-align: middle;
sana.
Demo
Di atas akan gagal jika Anda memiliki banyak baris, jadi dalam hal ini Anda dapat membungkus teks Anda menggunakan span
dan daripada menggunakan display: table-cell;
dan display: table;
bersama vertical-align: middle;
, juga jangan lupa untuk menggunakan width: 100%;
untuk#abc
Demo
#abc{
font:Verdana, Geneva, sans-serif;
font-size:18px;
text-align:left;
background-color:#0F0;
height:50px;
display: table;
width: 100%;
}
#abc span {
vertical-align:middle;
display: table-cell;
}
Solusi lain yang bisa saya pikirkan sini adalah dengan menggunakan transform
properti dengan translateY()
mana Y
jelas singkatan Y Axis. Ini cukup lurus ke depan ... Yang perlu Anda lakukan adalah mengatur posisi elemen ke absolute
dan kemudian posisi 50%
dari top
dan menerjemahkan dari porosnya dengan negatif-50%
div {
height: 100px;
width: 100px;
background-color: tomato;
position: relative;
}
p {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Demo
Perhatikan bahwa ini tidak akan didukung di browser lama, misalnya IE8, tetapi Anda dapat membuat IE9 dan versi browser lama Chrome dan Firefox lainnya dengan menggunakan -ms, -moz
dan -webkit
prefiks masing-masing.
Untuk informasi lebih lanjut transform
, Anda dapat merujuk di sini .
Sederhana: berikan div induk ini:
dan berikan div turunan ini:
Itu dia!
sumber
display:table;
ke induk untuk membuatnya berfungsi.Pertanyaan lama tetapi saat ini CSS3 membuat perataan vertikal sangat sederhana !
Tambahkan saja ke
#abc
css berikut:Demo Sederhana
Demo pertanyaan asli diperbarui
Contoh Sederhana:
sumber
CSS3
?Saya menemukan solusi ini oleh Sebastian Ekström. Cepat, kotor, dan bekerja dengan sangat baik. Meskipun Anda tidak mengetahui tinggi induknya:
Baca artikel lengkapnya di sini .
sumber
transform-style: preserve-3d;
!Anda dapat menggunakan tinggi Garis sebesar tinggi div. Tetapi bagi saya solusi terbaik adalah ini ->
position:relative; top:50%; transform:translate(0,50%);
sumber
Bagaimana jika menambahkan
line-height
?Biola, tinggi garis
Atau
padding
di#abc
. Inilah hasil dengan paddingMemperbarui
Tambahkan css Anda:
Hasilnya . Semoga ini yang Anda cari.
sumber
Coba ini:
Metode lain untuk memusatkan div:
sumber
sumber
Gunakan properti translateY CSS untuk memusatkan teks Anda secara vertikal di penampungnya
Dan kemudian terapkan ke DIV yang Anda miliki
Sesuaikan persentase translateY dengan kebutuhan Anda. Semoga ini membantu
sumber
Kode Ini Adalah untuk Vertical Middle dan Horizontal Center Align tanpa menentukan ketinggian tetap:
sumber