Answers:
使用line-height:50px;
代替高度。这应该够了吧 ;)
请注意,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>
如果需要多行,这是最简单的方法。将您span
的文本换成另一个,span
然后用指定高度line-height
。特技到多行被复位在内span
的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
可能是您div
或其他任何人
span
与其他内联元素一样,可以包含任何HTML内联元素。无论如何,我写道,如果有必要textvalignmiddle
的div
话,这可能是一个(display:inline;
如果您不喜欢使用,可以将其设置为spans
)
flexbox方式:
.foo {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
}
.foo
跨度display: flex-inline
会更合适
我需要此链接,因此我用a-tag和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%;
}
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;
}
输出 在这里输入图像描述