Saya menampilkan jumlah kotak dalam satu baris dengan tinggi dan lebar tetap, yang dihasilkan dari tag <li>. sekarang saya perlu meratakan teks di tengah vertikal. Perataan vertikal CSS tidak berdampak, mungkin saya melewatkan sesuatu ???
Saya tidak mencari trik menggunakan (margin, padding, line-height), ini tidak akan berfungsi karena beberapa teks panjang dan akan pecah menjadi dua baris.
Silakan temukan kode sebenarnya:
Kode CSS
ul.catBlock{
width:960px;
height: 270px;
border:1px solid #ccc;
}
ul.catBlock li{
list-style: none;
float:left;
display:block;
text-align: center;
width:160px;
height: 100px;
}
ul.catBlock li a{
display: block;
padding: 30px 10px 5px 10px;
height:60px;
}
Kode HTML
<ul class="catBlock">
<li><a href="#">IP Phone</a></li>
<li><a href="#">Dual SIM Switch Server</a></li>
<li><a href="#">IP PBX</a></li>
</ul>
html
css
vertical-alignment
AK4668
sumber
sumber
Jawaban:
Definisikan induk dengan
display: table
dan elemen itu sendiri denganvertical-align: middle
dandisplay: table-cell
.sumber
<li>
masuk ke satu baris?line-height
adalah cara Anda meratakan teks secara vertikal. Ini cukup standar dan saya tidak menganggapnya sebagai "retasan". Tambahkan sajaline-height: 100px
ke Andaul.catBlock li
dan itu akan baik-baik saja.Dalam hal ini Anda mungkin harus menambahkannya
ul.catBlock li a
karena semua teks di dalamli
juga ada di dalam filea
. Saya telah melihat beberapa hal aneh terjadi ketika Anda melakukan ini, jadi cobalah keduanya dan lihat mana yang berhasil.sumber
vertical-align: middle
jika Anda punyadisplay: table-cell
. Saya belum pernah menggunakannya. Lihat di sini: phrogz.net/css/vertical-align/index.htmlBetapa pun terlambatnya tanggapan ini selama bertahun-tahun, siapa pun yang menemukan ini mungkin hanya ingin mencoba
Dukungan browser untuk flexbox jauh lebih baik daripada saat @scottjoudry memposting tanggapannya di atas, tetapi Anda mungkin masih ingin mempertimbangkan untuk memberi awalan atau opsi lain jika Anda mencoba mendukung browser yang jauh lebih lama. caniuse: flex
sumber
list-style-image
di Chrome - gambar menghilangAnehnya (atau tidak),
vertical-align
alat tersebut benar-benar berfungsi paling baik untuk pekerjaan ini. Yang terbaik dari semuanya, tidak diperlukan Javascript.Dalam contoh berikut, saya memposisikan
outer
kelas di tengah tubuh, daninner
kelas di tengahouter
kelas.Pratinjau: http://jsfiddle.net/tLkSV/513/
HTML:
CSS:
Perataan vertikal bekerja dengan menyelaraskan pusat elemen yang bersebelahan. Menerapkan perataan vertikal ke satu elemen sama sekali tidak berarti. Jika Anda menambahkan elemen kedua yang tidak memiliki lebar tetapi merupakan tinggi wadah, elemen tunggal Anda akan berpindah ke tengah vertikal dengan elemen tanpa lebar ini, sehingga memusatkannya secara vertikal. Satu-satunya persyaratan adalah Anda menyetel kedua elemen menjadi sebaris (atau blok sebaris), dan menyetel atribut perataan vertikal ke
vertical-align: middle
.Catatan: Anda mungkin melihat dalam kode saya di bawah bahwa
<span>
tag dan tag saya<div>
bersentuhan. Karena keduanya adalah elemen sebaris, spasi sebenarnya akan menambahkan spasi antara elemen tanpa lebar dan div Anda, jadi pastikan untuk membiarkannya.sumber
Di masa mendatang, masalah ini akan diselesaikan dengan flexbox. Saat ini dukungan browser suram, tetapi didukung dalam satu bentuk atau lainnya di semua browser saat ini.
Dukungan browser: http://caniuse.com/flexbox
Latar belakang di Flexbox: http://css-tricks.com/snippets/css/a-guide-to-flexbox/
sumber
Tidak ada jawaban sempurna yang diberikan di sini kecuali jawaban Asaf yang tidak memberikan kode atau contoh apa pun, jadi saya ingin berkontribusi milik saya ...
Untuk membuat
vertical-align: middle;
pekerjaan, Anda perlu menggunakandisplay: table;
untukul
elemen Anda dandisplay: table-cell;
untukli
elemen dan daripada yang dapat Anda gunakanvertical-align: middle;
untukli
elemen.Anda tidak perlu memberikan eksplisit apa pun
margins
,paddings
untuk membuat teks Anda vertikal di tengah.Demo
sumber
Seperti yang dijelaskan di sini: https://css-tricks.com/centering-in-the-unknown/ .
Tangkapan layar:
sumber
Cobalah solusi ini
Berfungsi paling baik di sebagian besar kasus
Anda mungkin harus menggunakan div, bukan li untuk itu
sumber
Solusi sederhana untuk perataan vertikal tengah ... bagi saya itu berfungsi seperti pesona
sumber