我有一个简短的文本,后面是一个SVG在一个有限宽度的容器。预期的行为是,如果文本的长度超过容器的宽度,但我不希望它在文本和SVG之间中断:
当前结果:
预期成果:
在文本中间(蓝色之前)添加<nobr>
或<span>
标记并在SVG之后关闭它不是一个选项,因为文本来自外部数据库,无法编辑。
<span class="text">
Jack Wolfskin Jacke Colorado Flex - Midnight Blue
</span>
<span class="svg">
<svg>
....
</svg>
</span>
4条答案
按热度按时间xlpyo6sf1#
添加显示块到svg容器:
ocebsuys2#
我找到的唯一解决方案需要对原始HTML进行一次糟糕的更改。
为了确保图标不会单独出现在新的一行中,我用
white-space: no-wrap;
将最后一个单词和图标 Package 在一个新元素中,另外,如果我们希望它仍然可以拆分,如果行不能容纳最后一个单词和图标,我们可以使这个新容器内联flex和flex-wrappable。示例:https://jsfiddle.net/uerzo6sa/
yqyhoc1h3#
您可以使用此标记来防止换行。它不需要包含最后一个单词,因此您甚至可以在生成的内容中使用它。
JSX
HTML
CSS
https://jsfiddle.net/radarfox/65h40jt7/
a2mppw5e4#
您可以在SVG上定义
position: absolute
,用auto
表示top
、right
等。https://codepen.io/jsit/pen/xxOQoVW
唯一的副作用是这将允许SVG出现在包含框之外;这在某种意义上就是它起作用的原因。