使用 Flexbox 的解决方案
可以使用 Flexbox 将中间项居中,而不管同级项的宽度如何。
我们需要使用嵌套的 flex 容器和自动边距。
在下面,我们可以看到它是如何完成的。
使中间项目保持居中的示例:
<!DOCTYPE html> <html> <head> <title>文档的标题</title> <style> .container { display: flex; } .box { flex: 1; display: flex; justify-content: center; } .box:first-child > span { margin-right: auto; } .box:last-child > span { margin-left: auto; } .box { align-items: center; border: 1px solid #666; background-color: #c8cbcf; height: 60px; } p { text-align: center; margin: 5px 0 0 0; } </style> </head> <body> <div class="container"> <div class="box"> <span>short text</span> </div> <div class="box"> <span>centered text</span> </div> <div class="box"> <span>经历过风雨,才懂得阳光的温暖。</span> </div> </div> </body> </html>
其中类名为“container”的 <div> 是一个弹性容器,而类名为“box”的子 <div> 元素是弹性项目。
我们将每个子元素的 flex 属性设置为 1 以平均分配容器空间。
这使得项目使用行中的所有空间并具有相等的宽度。
然后,我们使每个项目成为一个嵌套的 flex 容器,并使用 justify-content 属性和“center”值。
带有“auto”值的 margin-right 和 margin-left 属性分别用于将外部 <span> 元素向右和向左移动。
此解决方案不允许指定宽度。
日期:2020-06-02 22:15:10 来源:oir作者:oir