换行后防止 flexbox 子填充父宽度
Prevent flexbox child fill parent width after line break
我在 flex 容器中有一个 span 和 anchor,它们水平和垂直居中。锚文本包含很少的非刹车空间,这是必要的 - 在中型上我想将它显示为单行,在小的它必须是双行的,其中第二行的文本由 nbsps 定义。我的问题是,当涉及到打破小的锚文本时,水平居中不起作用,因为锚占据了父宽度的其余部分,所以标签和锚都留在父的左侧。
有什么方法可以防止多行锚点填充父项的宽度吗?
请检查以下图片和代码段。谢谢你的任何想法。
中等效果很好...
Medium - fine
它如何处理小的和我不想要的
small - don't want
我想要的小
small - want
.parent {
border: 1px solid blue;
padding: 10px;
display: flex;
justify-content:center;
align-items: center;
}
.parent span {
margin-right: 5px;
}
<div class="parent">
<span>Label:</span>
<a href="#">One liner on medium, or two liner on small.</a>
</div>
一种方法是将您想要在换行符上的文本包装在 <span>
标记中,并使用媒体查询来确定您希望换行符出现的宽度。默认情况下,<span>
个元素是 inline
,并且会自动增长到 content/container 的大小。您需要将 <span>
显式设置为 display: block
才能使其正常工作。
(我还删除了标记中的所有不间断空格)。
我相信还有很多其他解决方案,这只是一个想法。
希望对您有所帮助,祝您好运!
.parent {
border: 1px solid blue;
padding: 10px;
display: flex;
justify-content:center;
align-items: center;
}
.parent span {
margin-right: 5px;
}
@media (max-width: 400px) {
.newline {
display: block;
}
}
<div class="parent">
<span>Label:</span>
<a href="#">One liner on medium,<span class="newline"> or two line on small.</span></a>
</div>
我在 flex 容器中有一个 span 和 anchor,它们水平和垂直居中。锚文本包含很少的非刹车空间,这是必要的 - 在中型上我想将它显示为单行,在小的它必须是双行的,其中第二行的文本由 nbsps 定义。我的问题是,当涉及到打破小的锚文本时,水平居中不起作用,因为锚占据了父宽度的其余部分,所以标签和锚都留在父的左侧。
有什么方法可以防止多行锚点填充父项的宽度吗?
请检查以下图片和代码段。谢谢你的任何想法。
中等效果很好... Medium - fine
它如何处理小的和我不想要的 small - don't want
我想要的小 small - want
.parent {
border: 1px solid blue;
padding: 10px;
display: flex;
justify-content:center;
align-items: center;
}
.parent span {
margin-right: 5px;
}
<div class="parent">
<span>Label:</span>
<a href="#">One liner on medium, or two liner on small.</a>
</div>
一种方法是将您想要在换行符上的文本包装在 <span>
标记中,并使用媒体查询来确定您希望换行符出现的宽度。默认情况下,<span>
个元素是 inline
,并且会自动增长到 content/container 的大小。您需要将 <span>
显式设置为 display: block
才能使其正常工作。
(我还删除了标记中的所有不间断空格)。
我相信还有很多其他解决方案,这只是一个想法。
希望对您有所帮助,祝您好运!
.parent {
border: 1px solid blue;
padding: 10px;
display: flex;
justify-content:center;
align-items: center;
}
.parent span {
margin-right: 5px;
}
@media (max-width: 400px) {
.newline {
display: block;
}
}
<div class="parent">
<span>Label:</span>
<a href="#">One liner on medium,<span class="newline"> or two line on small.</span></a>
</div>