我正在尝试为一个网站创建一些按钮使用样式的超链接。我已经设法让按钮看起来像我想要的那样,除了一个小问题。我不能让文本(下面源代码中的‘Link’)垂直居中。
不幸的是,可能有超过一行的文本,如第二个按钮所示,所以我不能使用line-height
将其垂直居中。
我最初的解决方案是使用display: table-cell;
而不是inline-block
,这解决了Chrome、Firefox和Safari中的问题,但不适用于in,所以我认为我需要坚持使用内联块。
如何在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>
发布于 2013-08-28 18:35:38
用跨度(居中)包裹文本,然后在文本前面再写一个空跨度(居中),如下所示。
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;
}
发布于 2014-07-11 03:47:18
非常感谢@avrahamcool,真的很棒!
我有一个小小的升级。您可以用css替换冗余的.Centerer span。
.button:before {
content: '';
display: inline-block;
vertical-align: middle;
height: 100%;
}
请在此处查看演示:http://jsfiddle.net/modernweb/bXD2V/
注意:这不适用于"content“属性中的文本。
发布于 2021-09-23 19:44:42
如果有人正在设计一个按钮,并寻找这个页面,你可以组合其他答案:
display:inline-flex
display:inline-block
button
设计button-content
,用于定义诸如文本装饰覆盖之类的内容(对于在父元素定义文本的页面中不带下划线的按钮来说是必需的-特别是在chrome和safari中)https://stackoverflow.com/questions/18485378
复制相似问题