通常我會垂直居中一個按鈕,位於絕對定位的div中top:50%
和margin-left:-(height/2)
,但今天我意識到它並不完美,或者我不知道如何正確使用它。垂直對齊一個絕對定位的div中的按鈕
例如我做了2個例子。在第一個示例中,<a>
標記是內聯元素,在第二個示例中它是block
元素。與block
元素的定位是完美的,但不幸的是寬度是100%。
請解釋爲什麼第二個例子適用於display:block;
?
我對您的跨瀏覽器解決方案非常感興趣。你如何做這個簡單的東西?
這裏是我的CSS:
.container {
height:240px;
position:relative;
}
.box {
width:200px;
height:100%;
position:absolute;
left:0;
top:0;
background:yellow;
text-align:center;
padding:20px;
}
#example2 { left: 250px; }
.btn {
display:inline-block;
padding:5px 12px;
line-height:34px;
color:#fff;
background:red;
position:relative;
top:50%;
margin-top:-17px;
}
#example2 .btn { display:block; }
..和HTML
<div class="container">
<div id="example1" class="box">
<a href="" class="btn">button</a>
</div>
<div id="example2" class="box">
<a href="" class="btn">button</a>
</div>
</div>
在線版本可在http://jsfiddle.net/79hqgabq/2/
謝謝,它可行,但爲什麼當我使用display:block時,它在我的版本中效果很好?在顯示器中:flex版本爲什麼顯示器的按鈕不是100%的按鈕?我必須支持較老的瀏覽器,所以這個flex版本應該等待。 – user3852837 2014-09-26 16:47:25
我會仔細研究它並回復你 - 仍然沒有想出完美的迴應 – Schybo 2014-09-26 23:44:29
謝謝!我真的很感興趣。我也想知道這是什麼跨瀏覽器的最佳做法。 – user3852837 2014-09-27 06:54:30