如何让“x”在跨度的中间垂直对齐?
.foo {
height: 50px;
border: solid black 1px;
display: inline-block;
vertical-align: middle;
}
<span class="foo">
x
</span>
答案 0 :(得分:193)
使用line-height:50px;
代替身高。这应该可以解决问题;)
答案 1 :(得分:110)
请注意,如果line-height
中有一个较长的句子,因为没有足够的空间而导致该行中断,span
方法会失败。在这种情况下,您将有两条线,其间隙与属性中指定的N像素的高度相同。
当我想要在其右侧显示带有垂直居中文本的图像时,我坚持使用它在响应式Web应用程序中工作。作为基础,我使用Eric Nickus和Felipe Tadeo建议的方法。
如果你想实现:
和此:
.container {
background: url( "https://i.imgur.com/tAlPtC4.jpg" ) no-repeat;
display: inline-block;
background-size: 40px 40px; /* image's size */
height: 40px; /* image's height */
padding-left: 50px; /* image's width plus 10 px (margin between text and image) */
}
.container span {
height: 40px; /* image's height */
display: table-cell;
vertical-align: middle;
}
<span class="container">
<span>This is a centered sentence next to an image</span>
</span>
答案 2 :(得分:36)
如果您需要多行,这是最简单的方法。将span
'文字换成另一个span
并用line-height
指定其高度。多行的技巧是重置内部span
的{{1}}。
line-height
<span class="textvalignmiddle"><span>YOUR TEXT HERE</span></span>
当然外部.textvalignmiddle {
line-height: /*set height*/;
}
.textvalignmiddle > span {
display: inline-block;
vertical-align: middle;
line-height: 1em; /*set line height back to normal*/
}
可以是span
或whathaveyou
答案 3 :(得分:10)
flexbox方式:
.foo {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
}
答案 4 :(得分:5)
我需要这个链接,所以我用一个标签和一个div包装了span,然后将span标签本身居中
HTML
<div>
<a class="tester" href="#">
<span>Home</span>
</a>
</div>
CSS
.tester{
display: inline-block;
width: 9em;
height: 3em;
text-align: center;
}
.tester>span{
position: relative;
top: 25%;
}
答案 5 :(得分:5)
CSS垂直中心图片和文字
我为垂直图像中心和文本创建了一个演示,我也测试了firefox,chrome,safari,Internet Explorer 9和8。
这是非常简短的css和html,请检查下面的代码,你可以在screenshort上找到输出。
<强> HTML 强>
<div class="frame">
<img src="capabilities_icon1.png" alt="" />
</div>
<强> CSS 强>
.frame {
height: 160px;
width: 160px;
border: 1px solid red;
white-space: nowrap;
text-align: center; margin: 1em 0;
}
.frame::before {
display: inline-block;
height: 100%;
vertical-align: middle;
content:"";
}
img {
background: #3A6F9A;
vertical-align: middle;
}
<强>输出强> enter image description here
答案 6 :(得分:2)
这适合我(Keltex说同样的)
.foo {
height: 50px;
...
}
.foo span{
vertical-align: middle;
}
<span class="foo"> <span>middle!</span></span>
答案 7 :(得分:1)
不幸的是,vertical-align css属性没有达到预期效果。 This article解释了使用css垂直对齐元素的两种方法。
答案 8 :(得分:1)
将padding-top设置为适当的值以向下推x,然后从高度中减去padding-top所具有的值。