2015-05-14 71 views
1

enter image description here與居中的文本(垂直和水平方向)和有效區域只有圓,不是正方形形狀

您好回合鏈路, 請參閱上面的圖片。

我需要一個鏈接,在圓的形狀: - 整圈應該是鏈接 的活動區域 - 「背後」圓不應該是主動方的角落 - 必須允許多個循環中的文字線

注意:我可以很容易地用table-cell做到這一點,但是我需要活動區域只是圓形。我不希望用戶能夠將鼠標懸停在圓圈後方的角落,然後點擊鏈接。

感謝

+0

小提琴更多信息:http://jsfiddle.net/4178z93u/ - 你可以看到,當將鼠標懸停在圓圈的「角落」上,它也處於活動狀態。 – user1525612

+0

你在測試什麼瀏覽器?較新的瀏覽器不會將可點擊區域視爲正方形。 – Andrew

+0

在現代瀏覽器中測試 - firefox – user1525612

回答

1

你可以使用border-radius有一個相當大的半徑。 Check this fiddle

a { 
    display: inline-block; 
    border-radius: 80px; 
    height: 80px; 
    width: 80px; 
    background: red; 
    padding-top: 25px; 
    text-align: center; 
    box-sizing: border-box; 
} 

至於如何中心在按鈕上的文字:只用一行文字,你可以簡單地設置按鈕的line-height等於其高度。但是這顯然不適用於多行文本。 Check out this fiddlethis SO answer,它可能會幫助你。

0

請參閱下面的示例。注意line-height: 160px; - 這個技巧垂直對齊文本。

.circle-link{ 
 
    display: inline-flex; 
 
    width: 160px; 
 
    height: 160px; 
 
    background-color: green; 
 
    color: white; 
 
    border: solid 1px darkgreen; 
 
    border-radius: 80px; 
 
    font-size: 20px; 
 
    text-decoration: none; 
 
    text-align: center; 
 
    align-items: center; 
 
    justify-content: center; 
 
}
<a href='#' class='circle-link'>Multiline<br />cyrcle link</a>

UPDATE:

如果你需要多行(或甚至圖像的文字)居中的文字,最可靠的方法是使用靈活的模式。取而代之的'display: block''inline-block'設置display: flex;display: inline-flex;然後​​和justify-content: center;

有關垂直居中方法在這裏看到的文章Vertical centering of elements in HTML

+0

我需要這個爲多行文本工作,我認爲這隻會在只有一行文本時才起作用 – user1525612

+0

@ user1525612你是對的。請參閱我的答案更新 –