2013-02-13 10 views
21

Próbuję utworzyć łącze, które ma height i width z 200px. Tekst linku powinien być wyśrodkowany w pionie i poziomie.HTML-CSS Center Tekst w poziomie i w pionie w linku

To jest mój CSS tej pory:

a:link.Kachel { 
    width: 200px; 
    height: 200px; 
    margin: 0 auto; 
    display: block; 
    text-align: center; 
    background: #383838; 
    display: -webkit-box; 
    display: -moz-box; 
    display: box; 
    -webkit-box-align: center; 
    -moz-box-align: center; 
    box-align: center; 
} 

i ten kod HTML:

<tr> 
    <td> 
    <a class="Kachel" href="#">Test</a> 
    </td> 
</tr> 

tekst wyśrodkowany w poziomie, ale nie pionowo.

Każdy pomysł, jak uzyskać tekst wyśrodkowany zarówno w poziomie, jak i w pionie?

Odpowiedz

44

usunąć wszystkie te inne bzdury, i po prostu zastąpić height z line-height

a:link.Kachel{ 
    width: 200px; 
    line-height: 200px; 
    display: block; 
    text-align: center; 
    background: #383838; 
} 

jsfiddle: http://jsfiddle.net/6jSFY/

+0

dziękuję. Czasami to takie proste :). – user1567896

+5

co jeśli link ma wartość "height: 100%"? – nicooga

+0

zazwyczaj wysokość linii pionowo wyrównuje, jeśli jest ustawiony na 150%, który byłby używany, gdyby wysokość elementu była ustawiona na 100% – albert

5

Jeśli tekst jest tylko na jednej linii, można użyć line-height:200px; - gdzie 200px jest taka sama jak wartość height.

Jeśli tekst jest na wielu liniach i zawsze będzie na tej samej liczbie wielu linii, można użyć padding w połączeniu z line-height. Przykład 2 linie:

line-height:20px; 
padding-top:80px; 

ten sposób dwie linie odbędzie się łącznie 40 pikseli i wyściółka top umieszcza je doskonale w środku. Zauważ, że musisz odpowiednio dostosować height.

JSFiddle example.

Jeśli istnieje więcej niż jedno łącze i będzie ono zawierało dowolną liczbę linii, konieczne będzie dołączenie niektórych skryptów JavaScript do poprawek.

2

Mały punkt do dodania. Jeśli usuniesz podkreślenie (dekoracja tekstu: brak;), tekst nie zostanie idealnie wyśrodkowany w pionie. Łącza pozostawiają miejsce na podkreślenie. Zgodnie z moją wiedzą nie ma sposobu, aby to zmienić, z wyjątkiem dodania trochę dodatkowego dopełnienia.

1

Jeśli liczba wierszy (lub wewnętrzna wysokość elementu) nie jest znana, istnieje inna sztuczka z użyciem display: table i vertical-align:

.wrapper{ 
    display: table; 
} 
.link{ 
    display: table-cell; 
    vertical-align: middle; 
} 

Example

Full article with details

Powiązane problemy