如图所示,
当本行只有一行时,文字垂直居中, 当有两行文字时,同样使文字垂直居中,如何做到呢?
PS: 不用flex.
从你的布局来看,应该是这样的:左边的文字与右边时间都垂直居中。
一个简单的方法就是:如
布局:<div><span>gfghghg</span><span>2017-12<s/pan></div>
css:
div{display: table;}
span{display: table-cell; vertical-align: middle;}
可以试下
display: -webkit-flex;
display: flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
<div class="" style="display: table;height: 100px;">
<div class="" style="display: table-cell;vertical-align: middle;">
sadfsadf
</div>
<div class="" style="display: table-cell;vertical-align: middle;">
sadfsadf
</div>
</div>
<div class="one">
<div class="two>
文字
</div>
</div>
.one {
position: relative;
}
.two {
position: absolute;
top: 50%;
transform: translateY(-50%);
根据你提供的图来看,每一条内容都是定高的,所以设置最外层父元素line-height等于自身高度 里面的p标签 display:inline-block;vertical-align: middle;
代码结构
<ul>
<li>
<p></p><span></span>
</li>
<li>
<p></p><span></span>
</li>
<li>
<p></p><span></span>
</li>
</ul>
可以看下我总结的这些方法。传送门
题主需要的就是多行文字垂直居中的方法吧。我总结的文章里面有典型的方法可以实现,例子如下。
http://codepen.io/zengkan0703...
不知道是题主踩的我的答案吗?如果是,我希望能回答我为什么。如果不是,上面的例子应该能解决你的需求。
3 回答4.8k 阅读✓ 已解决
5 回答2k 阅读
2 回答2.6k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
先看效果图

然后是代码实现