在HTML文档中,假设我有一个链接,它在另一个非空格字符之后开始,例如:

p {
  max-width: 140px;
}
<p>This is some text that includes a link (<a href="https://example.com">example</a>)</p>

如果视口宽度使得线条必须在链接文本的第一个词的中间中断,那么前面的字符(在本例中是左括号)"粘"到链接上,即标准布局算法在最接近的前面空白处中 break line 条.

但是,如果我想在a元素的开头插入一个SVG图标:

p {
  max-width: 140px;
}
<p>This is some text that includes a link (<a href="https://example.com"><svg style="height: 1em; color: green;" viewbox="0 0 10 10" fill="currentColor"><circle cx="5" cy="5" r="5" /></svg>example</a>)</p>

然后,现在允许线断开SVG的任何一侧.

问题

有没有什么方法可以让布局引擎像对待普通文本字符一样对待svg,以便打开的括号仍然"粘"在链接文本上?

我不能使整个段落或整个链接white-space: nowrap—I want的文本能够正常地包装在链接内外,我只需要它not打破周围的<svg>(除非链接作为一个整体是空白). 基本上,我希望能够在链接的开始插入一个图标,而不干扰正常的文本布局行为,就好像图标只是另一个字符,与现有链接文本的第一个字符具有相同的Unicode属性.

这可能吗?

推荐答案

您可以try 使用纯CSS为SVG模拟字符(::first-letter伪元素可以是一个选项).

但我认为你不会达到一个标准角色的确切行为.

Tanishq的响应是有效的,但是例如,如果括号在图像之前,就像在你最初的例子中,而不是在之后,括号和图像将被分开到不同的行上.

如果你真的想要个性的行为,就个人而言,我会打Dingbat typography分.

您当然可以创建自己的Dingbat排版来嵌入一组SVG图标,并在字符流中随意使用它们(这与Google Content Icon的原理相同).

例如,Fontello网站允许您在几次点击中创建自己的排版.

Html相关问答推荐

HTML CSS如何使用图像作为中心点将元素置于中心

我的表的第一列似乎是推其他2列到右边,我不能改变它

标签数据的XPath?

如何收集<;p&>元素下的<;p>;子元素

粘滞的导航栏延伸到超过页边距的右侧

使用Cypress循环遍历不一致的父对象

平移变换下的SVG剪辑路径行为

如何制作带有粘性头和脚的可滚动车身

try 更新我的Node.js应用程序中的用户,但我收到错误.然而,当我使用postman 时,更新工作正常

如何在ASP.NET Core中添加换行符

为什么当我按第三个按钮时,前两个按钮会跳动?

如何居中此按钮,即使它已经在计算机分辨率中居中

无法在 CSS 中将 h1 标签居中

如何使用CSS Select 表亲元素

如何截断一些文本并用双引号引起来?

使用 rgba() 的 css 中的边框不透明度不起作用

让 Iframe 覆盖整个页面

调整大小时 CSS 溢出

为什么 `html` 上的 overflow: hidden 将滚动框移动到正文?

有没有办法在 CSS 类子句中指定多个 HTML 元素?