2016-04-06 7 views
0

Düğmeler için bu vurgulu efekti kullanıyorum, ancak yükseklik değiştiğinde birkaç durumda üst kısım aynı kalıyor ve altta tam tersi değil meli. Her zaman doğru yönde gittiğinden nasıl emin olabilirim?Vurgulu görünümde div yüksekliği değiştirilirken kısaltılan denetim tarafı

.button { 
 
    box-sizing: border-box; 
 
    display: inline-block; 
 
    width: 215px; 
 
    height: 55px; 
 
    color: white; 
 
    font-family: $arial; 
 
    font-size: 12px; 
 
    font-weight: bold; 
 
    text-transform: uppercase; 
 
    text-align: center; 
 
    text-decoration: none; 
 
    text-shadow: 1px 1px 1px rgba(43, 36, 36, 0.35); 
 
    letter-spacing: .1em; 
 
    border-radius: 3px; 
 
    position: relative; 
 
    background: #009ee0; 
 
    border: 1px solid #148fc6; 
 
    border-bottom: 4px solid #148fc6; 
 
} 
 
.button:hover { 
 
    border-bottom: 1px; 
 
    height: 53px; 
 
} 
 
.button span { 
 
    position: absolute; 
 
    width: 90%; 
 
    left: 0; 
 
    right: 0; 
 
    margin: auto; 
 
    top: 50%; 
 
    transform: translateY(-43%); 
 
    line-height: 1.2; 
 
} 
 
div { 
 
    padding: 20px 5px; 
 
}
<div> 
 
    <a href="#" class="button"> 
 
    <span>Wrong way</span> 
 
    </a> 
 
</div> 
 

 
<div> 
 
    <a href="#" class="button"> 
 
    <span>I work fine</span> 
 
    </a> 
 
    <a href="#" class="button"> 
 
    <span>I work fine</span> 
 
    </a> 
 
</div>

+0

bunu codepen/jsfiddle içinde yapar bir örnek oluşturabilir miyim:

https://jsfiddle.net/exd6hhvz/

cevap

3

jsfiddle Sen 53px için 55p gelen yüksekliğini azaltarak ediyoruz. Bu 2px'in bir yere gitmesi gerekiyor. Üst düğme sadece onu daraltıyor. (En alttaki ikisi aynı şeyi yapıyor, sadece dikey metin hizalamasından etkilendikleri için böyle görünmüyor). Boy kaybını karşılamak için vurgulu kuralınızı buna göre değiştirin. https://jsfiddle.net/vf03czp5/

+0

Başka bir şey fark ettim ki, eğer div içinde iki düğme varsa, yanlış bir davranış göstermez. https://plnkr.co/edit/CghXYAtnCWU19gWhYUMR?p=preview adresini kontrol edin. Aynı HTML ve CSS'ye sahip sadece bir ek düğme eklendi – S4beR

+0

@ S4beR Bu dikey hizalama nedeniyle. Bir veya diğer düğme kabın yüksekliğini koruyor çünkü sadece bir seferde üzerine gelebilirsiniz. Bu durumda, düğmeler, satır içi blok elemanlarına uygulanan varsayılan dikey hizalama taban çizgisi nedeniyle aynı temeli sürdürmeye çalışmaktadır. Düğmelere "dikey hizala: top" ekleyin ve hatalı davranışı tekrar görürsünüz. –

+0

@ S4beR Bkz. Https://plnkr.co/edit/TVRzED4NaafA2cF1Fm5p?p=preview. Yaptığım tek şey, ".button" CSS'ye "dikey hizala: top" eklemek. –

0

.button:hover { 
    border-bottom: 1px; 
    margin-top: 2px; 
    height: 53px; 
} 
Ben .button:hover İşte

için margin-top: 2px; ekleyerek sürekli çalışmasını sağlamak başardı bir örnek ?

İlgili konular