【发布时间】:2016-07-21 23:03:07
【问题描述】:
我正在尝试将多个两行文本框很好地定位,如下所示:
我想用一个 flexbox 来做这件事,所以无论我如何调整它的大小,文本都会覆盖矩形的相同比例。这是我的尝试:
.words text {
dominant-baseline: text-before-edge;
flex: 1 0 auto;
box-sizing: border-box;
}
.words {
display: flex;
justify-content: space-around;
width: 50%;
}
rect {
fill: rgba(255, 0, 0, 0.1);
}
<svg>
<rect width="300" height="100"></rect>
<g class="words">
<text>
<tspan x="0" y="0">Text</tspan>
<tspan x="0" y="1.5em">One</tspan>
</text>
<text>
<tspan x="0" y="0">Text</tspan>
<tspan x="0" y="1.5em">Two</tspan>
</text>
<text>
<tspan x="0" y="0">Text</tspan>
<tspan x="0" y="1.5em">Three</tspan>
</text>
</g>
</svg>
显而易见,文本只是在自身上堆积起来,而不是像我希望的那样均匀分布。我正在关注this guide,但我不确定我是否只是不理解这个 flex 东西是如何工作的,或者在将它与text/tspan 一起使用时是否存在一些限制。
如何使用 CSS 将这些 SVG text 标签均匀地分布在矩形的左半边?
【问题讨论】:
-
@RobertLongson:感谢您的明确答复。如果您这样发布,我将不胜感激。如果您想发布解决方法,我会真的感谢它!
-
这里似乎根本不需要 SVG,只需要使用 html spans。