已经解决了
没必要加太多东西. con类你已经设成了inline-block,那么在父盒子上就可以直接text-align: center;另外你这垂直居中的效果不太对.box类上不是height,而是line-height.将你的代码简单修改了一下,你看看效果是不是你想要的.
html部分
<body> <div class="box"> <div class="con"> <p>1hang</p> <p>1hang</p> <p>1hang</p> <p>1hang</p> <p>1hang</p> </div> </div> </body>
css部分
.box { line-height: 300px; background: red; text-align: center; } .con { line-height: normal; display: inline-block; vertical-align: middle; border: 1px dashed blueviolet; }
晚上好不容易弄明白了,兴冲冲的来这自答一下,结果慕课网这个回答问题的输入框差点没把我气死,真是烂透了,提交了几次都报数据库错误;幸好备份过,但是粘贴进来格式全不对了,一一改完提交后居然还是一样的错误,反复几次浪费了半小时,还能让我好好过个年不?
最后没办法了,把答案记录在了慕课网《CSS深入理解之vertical-align》释疑记录 这里,还是简书靠谱啊。
—— 于2017年除夕夜 2017.1.28
没太明白楼主的意思。不管怎么说在chrome55尝试了楼主的代码,span设置vertical-align: middle在楼主说的同情况下都能引起span位置的变化呀
text-align:center
父元素要设置height而不是line-height
能具体解释一下么,不知道怎么弄?
<p class="box"><span>多行垂直居中<br>多行垂直居中<br>多行垂直居中<br>多行垂直居中</span><i></i></p>
.box {height:200px;background: #aaa;} .box span {display: inline-block;vertical-align: middle;} .box i {display: inline-block;height:100%;vertical-align: middle;}