2012-03-11 12 views
5

mogę być pierwszą osobą, do odkrywania tego (lub przynajmniej dokument to w internecie):Czy jest to najprostsze i najbardziej elastyczne rozwiązanie do pionowego wyrównania tekstu w elemencie bloku?

HTML:

<div>Vertically Aligned Text<span></span></div> 

CSS:

div 
{ 
    height: 100px; /* or whatever % etc. */ 
} 

div > span 
{ 
    display: inline-block; 
    visibility: hidden; 
    height: 100%; 
    vertical-align: middle; 
} 

To działa, ponieważ wzrasta kodowych wysokość linii do 100% kontenera, ale nie rozumiem, dlaczego ustawienie vertical-align: middle; na <span></span> wpływa na tekst.

Nie znalazłem tego rozwiązania udokumentowanego w Internecie, a jest ono prostsze i bardziej elastyczne niż inne, które znalazłem. Dodatkowo powinien działać we wszystkich przeglądarkach od IE6 (oczywiście zastępując selektor podrzędny czymś innym).

Aby spełnić wymóg pytania, czy jest to najprostsze i najbardziej elastyczne rozwiązanie odwiecznego pytania?

+0

Umieść fiddlink. –

+0

Nice ale działa tylko, jeśli tekst nie jest borken na więcej niż jeden wiersz http://jsfiddle.net/aQNWp/ – Dampsquid

+0

Co to jest fiddlink? –

Odpowiedz

0

Używam atrybutu wyświetlania CSS table-cell najłatwiejszą metodą.

Zobacz ten jsFiddle

a CSS:

div 
{ 
    height:100px; /* or whatever % etc. */ 
    border: solid 1px black; 
    vertical-align : middle; 
    display : table-cell; 
} 
+0

Nie sądzę, że to działa na IE6/7. –

+0

@ChrisCannon Prawidłowo, [metody wyświetlania tabeli nie są obsługiwane w ie6/7] (http://www.quirksmode.org/css/display.html) – steveax

+0

Nie obsługuję ich. Przekierowuję IE6/7 na stronę z informacją, że mimo to należy ją zaktualizować. Jeśli nadal ich używają, nie widzą moich pięknych współczesnych stron: P – jacktheripper

0

Ten artykuł opisuje wszystkie pionowe technik ustawania (to wiem od :)), opartemu podejście zostało zrobione. http://phrogz.net/css/vertical-align/index.html

+0

Nie, nie, metoda 1 używa ujemnych marginesów, a metoda 2 używa linii wysokości opartej na ems (co jest w porządku, jeśli istnieje prosty stosunek jak 2: 1). –

Powiązane problemy