2012-12-16 21 views
7

metin orta bu düzenvertical-align:</p> <p><img src="https://i.stack.imgur.com/Yru7c.png" alt="layout"></p> <p><strong>Benim CSS</strong>: düğme

body { 
    background: #e2eaed; 
} 
a { 
    text-decoration: none; 
    color: #fff; 
    font-size: 30px; 
    height: 62px; 
    line-height: 62px; 
    /* vertical-align: middle is not works */ 
    background: #8dc73f; 
    width: 132px; 
    padding: 0 25px; 
    font-size: 16px; 
    text-align: center; 
    font-weight: bold; 
    margin-left: 4px; 
    display: block; 
    float: left; 
} 

düğmesi 1 satır metin, benim kod işleri sahip olduğunda iyi. Ancak, düğmenin yukarıdaki resimde olduğu gibi 2 satırlık metinleri olduğunda. Kod metni büyük bir boyuta sahiptir, çünkü line-height özelliğini kullanıyorum. vertical-align'u denedim ama çalışmıyor.

Lütfen bkz. jsfiddle.

cevap

6

Dikey hizalama, yalnızca tablo hücreleri (veya satır içi bloklar olarak görünen ancak daha sonra farklı olan) olarak görüntülenen öğeleri etkiler. Bu elemanlar sulanmamalıdır.

a { 
    display: table-cell; 
    vertical-align: middle; 

    /* Reset */ 
    float: none; 
    line-height: normal; 
} 
+0

http://jsfiddle.net/nJj2c/4/ margin artık görünür değil – Ozerich

+0

@Ozerich Tablo hücresinde kenar boşlukları yok. Bunun yerine şeffaf sınırları kullanabilirsiniz. – Pavlo

+0

teşekkürler, ama belki başka yöntemler biliyor musunuz? – Ozerich

12

başka yöntem flexible boxes kullanarak olurdu:

a { 
    display: inline-flex; 
    align-items: center; /* cross axis */ 
    justify-content: center; /* main axis */ 

    line-height: 1; /* reset */ 
} 

Sen eklerler browser support ve fiddle görmeyi gerekebilir.

İlgili konular