2014-03-31 86 views
0

我在:hover上顯示一個:before僞元素。僞元素的中心內容

我正在使用字體真棒,並希望垂直居中:before的內容,但垂直對齊,邊距等沒有太大的幫助。

任何想法?

.tile:before { 
    font-family: FontAwesome; 
    font-size: 150px; 
    color: white; 
    text-align: center; 
    border-radius: 15px; 
    opacity: 0; 
    z-index: 9999; 
    width: 100%; 
    height: 100%; 
    content: "\f16b"; 
    position: absolute; 
    background-color: rgba(219,127,8, 0.7); 
    -webkit-transition: all 0.3s ease-in-out; 
    -moz-transition: all 0.3s ease-in-out; 
    -o-transition: all 0.3s ease-in-out; 
    -ms-transition: all 0.3s ease-in-out; 
    transition: all 0.3s ease-in-out; 
} 
.tile:hover:before { 
    opacity: 1; 
} 
+0

請問您可以發佈您的相關HTML和CSS,以便我們至少可以直觀地看到代碼中發生了什麼? –

+0

我知道最糟糕的情況,我只能使用line-height:elementSize,它會垂直居中。但我更喜歡解決這個沒有javascript。 –

回答

1

下面是.tile一些潛在的建議:前:

1 - 使用像素值,而不是100%高度:

height: 100px; 

2 - 確保這正顯示作爲可以ACCEPT餘量的元件,填充等

display: block; 

- 或 -

display: inline-block; 

3 - 我知道你說你嘗試了利潤率,但是你是否嘗試過padding-top?

padding-top: 20px; 

4嘗試將溢出設置爲隱藏或可見。這往往迫使元素表現「更好」。

overflow:hidden; 

我會嘗試所有這些,看看會發生什麼。

最後,我可能會嘗試設置一個「top:」值,因爲您有「position:absolute;」已經。也許試試這個和「position:relative」一起使用太。

top: 10px; 

真的需要所有的代碼(HTML)來告訴什麼會工作。

1

使用:before作爲封面的背景上顯示的瓦片元件的頂部上,和與:after

.tile:after { 
    top: 50%; 
    left: 50%; 
    /* Both half of font-size */ 
    margin-left: -75px; 
    margin-top: -75px; 
    height: 150px; 
    line-height: 1; 
} 

似乎可以解決問題。謝謝大家。