Możesz użyć line-height: 50px;
, nie będziesz vertical-align: middle;
tam potrzebować .
Próbny
Powyższe nie powiedzie się, jeśli masz wiele linii, więc w takim przypadku możesz zawinąć tekst za pomocą span
i, a następnie użyć display: table-cell;
i display: table;
wraz z vertical-align: middle;
, nie zapomnij również użyć width: 100%;
dla#abc
Próbny
#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;
}
Innym rozwiązaniem, które przychodzi mi do głowy, jest użycie transform
właściwości translateY()
gdzie Y
oczywiście oznacza oś Y. To całkiem proste ... Wszystko, co musisz zrobić, to ustawić pozycję elementów na absolute
i później pozycję 50%
od top
i przesunąć od osi z ujemnym-50%
div {
height: 100px;
width: 100px;
background-color: tomato;
position: relative;
}
p {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Próbny
Pamiętaj, że nie będzie to obsługiwane w starszych przeglądarkach, na przykład IE8, ale możesz utworzyć IE9 i inne starsze wersje przeglądarek Chrome i Firefox, używając -ms, -moz
i-webkit
odpowiednio prefiksów .
Więcej informacji na temat transform
można znaleźć tutaj .
To proste: podaj rodzicowi div:
i daj dziecku element (y) div:
Otóż to!
źródło
display:table;
do rodzica, aby to działało.Stare pytanie, ale obecnie CSS3 sprawia, że wyrównanie w pionie jest naprawdę proste !
Po prostu dodaj do
#abc
następującego css:Proste demo
Oryginalne demo pytania zostało zaktualizowane
Prosty przykład:
źródło
CSS3
?Znalazłem to rozwiązanie autorstwa Sebastiana Ekströma. Jest szybki, brudny i działa naprawdę dobrze. Nawet jeśli nie znasz wzrostu rodzica:
Przeczytaj cały artykuł tutaj .
źródło
transform-style: preserve-3d;
:!Możesz użyć Wysokość linii równą wysokości elementu div. Ale dla mnie najlepszym rozwiązaniem jest to ->
position:relative; top:50%; transform:translate(0,50%);
źródło
Co powiesz na dodanie
line-height
?Skrzypce, wysokość linii
Albo
padding
dalej#abc
. To jest wynik z dopełnieniemAktualizacja
Dodaj w swoim CSS:
Wynik . Mam nadzieję, że tego szukasz.
źródło
Spróbuj tego:
Inna metoda centrowania div:
źródło
źródło
Użyj właściwości translateY CSS, aby wyśrodkować tekst w jego kontenerze w pionie
A następnie zastosuj go do zawierającego DIV
Dostosuj wartość procentową translateY do swoich potrzeb. Mam nadzieję że to pomoże
źródło
Ten kod dotyczy pionowego wyrównania do środka i poziomego wyśrodkowania bez określania stałej wysokości:
źródło