我正在尝试使用样式化的超链接为网站创建一些按钮。我设法让按钮看起来像我想要的,禁止一个小问题。我无法将文本(下面的源代码中的“链接”)设置为垂直居中。
不幸的是,第二个按钮可能会显示多行文字,因此我无法使用line-height
垂直居中。
我的初步解决方案是使用display: table-cell;
而不是inline-block
,并在Chrome,Firefox和Safari中对问题进行排序,但在Internet Explorer中没有,因此我认为我需要坚持使用内联 - 块。
如何在57px
x 100px
inline-block
内垂直居中显示链接文字,并让它迎合多行文字?提前谢谢。
CSS:
.button {
background-image:url(/images/categorybutton-off.gif);
color:#000;
display:inline-block;
height:57px;
width:100px;
font-family:Verdana, Geneva, sans-serif;
font-size:10px;
font-weight:bold;
text-align:center;
text-decoration:none;
vertical-align:middle;
}
.button:hover {
background-image:url(/images/categorybutton-on.gif);
}
.button:before {
content:"Click Here For\A";
font-style:italic;
font-weight:normal !important;
white-space:pre;
}
HTML:
<a href="/" class="button">Link</a>
<a href="/" class="button">Link<br />More Details</a>
答案 0 :(得分:31)
非常感谢@avrahamcool,就像一个魅力!
我有一点升级。您可以使用css
替换冗余.Centerer span.button:before {
content: '';
display: inline-block;
vertical-align: middle;
height: 100%;
}
在此处查看演示:http://jsfiddle.net/modernweb/bXD2V/
注意:这不适用于“content”属性中的文本。
答案 1 :(得分:19)
用span(中心)包裹文本,然后在它之前写一个空的范围(Centerer)。
<强> HTML:强>
<a href="..." class="button">
<span class="Centerer"></span>
<span class='Centered'>Link</span>
</a>
<强> CSS 强>
.Centered
{
vertical-align: middle;
display: inline-block;
}
.Centerer
{
display: inline-block;
height: 100%;
vertical-align: middle;
}