javascript – 如何使用flexbox在固定高度div中垂直居中文本而不溢出?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何使用flexbox在固定高度div中垂直居中文本而不溢出?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1744字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何使用flexbox在固定高度div中垂直居中文本而不溢出?](/upload/InfoBanner/zyjiaocheng/745/762a0cba18e24ce7ba56d2aed4b37c4c.jpg)
第三个.box中的第一行文本被提升到div的顶部之上并被切断.我希望它看起来和第二个盒子一样(实际上理想情况下就像第二个盒子加上……).
>这可以用flexbox完成吗?
>如果没有,可以用其他CSS完成吗?
>如果没有,用JS做到最好的方法是什么?
>另外,为什么第一个盒子的文本中心对齐?
http://codepen.io/loren/pen/ojxORN
<div class='box'>
one line of text
</div>
<div class='box'>
two lines of text lorem ipsum
</div>
<div class='box'>
thre lines of text lorem ipsum sin dolor whatever etc
</div>
.box
height 40px
font-size 16px
width 150px
border 1px solid black
margin-bottom 40px
display flex
align-items center
text-align center
overflow-y hidden
解决方法:
当align-self计算到居中时,flex项目在行内的横轴中居中.
如果flex项比flex容器大,那就有问题,因为它会从上方和下方溢出它.如果溢出不可见,上部将被切断.
为避免这种情况,您可以使用auto margins集中:
.box {
display: flex;
height: 40px;
width: 150px;
overflow: auto;
border: 1px solid black;
margin-bottom: 20px;
font-size: 16px;
text-align: center;
}
.box > div {
margin: auto;
}
<div class='box'>
<div>one line of text</div>
</div>
<div class='box'>
<div>two lines of text lorem ipsum</div>
</div>
<div class='box'>
<div>thre lines of text lorem ipsum sin dolor whatever etc</div>
</div>
注意边距:需要将auto添加到每个弹性项目.但是,您无法选择包含Flex容器中连续文本运行的匿名弹性项目.因此,我将文本包装在可以选择的div元素中.
如果您不想更改HTML,则可以使用伪元素.
.box {
display: flex;
flex-direction: column;
height: 40px;
width: 150px;
overflow: auto;
border: 1px solid black;
margin-bottom: 40px;
font-size: 16px;
text-align: center;
}
.box::before, .box::after {
content: '';
margin-top: auto;
}
<div class='box'>
one line of text
</div>
<div class='box'>
two lines of text lorem ipsum
</div>
<div class='box'>
thre lines of text lorem ipsum sin dolor whatever etc
</div>
内容总结
以上是互联网集市为您收集整理的javascript – 如何使用flexbox在固定高度div中垂直居中文本而不溢出?全部内容,希望文章能够帮你解决javascript – 如何使用flexbox在固定高度div中垂直居中文本而不溢出?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。