之前本人一直使用浮动、相对定位、绝对定位和display:table等css的方法进行定位。网上得知flex可实现弹性布局,符合未来发展趋势,随尝试。
1:让盒子行内文字垂直居中,解决思路是讲文字的行高设置为盒子的高度。
p { border:#333333 solid 1px; height:50px; line-height:50px; margin-bottom:30px; }
2:让盒子行内文字垂直居中,解决思路是对盒子的高度设定,然后对盒子的padding-top和padding-bottom设置相同的值。
p { border:#333333 solid 1px; padding-top:30px; padding-bottom:30px; margin-bottom:30px; }
3:让盒子行内文字垂直居中,解决思路是让盒子的display属性变成table,然后文字添加span标签,span属性display:table-cell
p { border:#333333 solid 1px; height:60px; display:table; width:100%; margin-bottom:30px; } p span { display:table-cell; vertical-align:middle; }
<p><span>中华人民共和国</span></p>
4:让盒子行内文字垂直居中,解决思路是让盒子display的属性变成flex
p { border:#333333 solid 1px; height:60px; display:flex; align-items:center; margin-bottom:30px; }
<p><span>中华人民共和国</span></p>
如果让“中华人民共和国”水平也居中的话,css调整为:
p { border:#333333 solid 1px; height:60px; display:flex; align-items:center;/*垂直方向*/ justify-content:center;/*水平方向*/ margin-bottom:30px; }