【问题标题】:Can I insert <object> element into pseudo class ::before's content? [duplicate]我可以将 <object> 元素插入伪类 ::before 的内容吗? [复制]
【发布时间】:2016-09-29 22:27:23
【问题描述】:

我构建了一个由水平列表组成的进度条。每个列表项都包含在 ::before 伪类的 content 属性中的 svg。效果是每个列表项上方出现的图标表示用户进度中的某个步骤。

允许用户编辑网站上所有内容的颜色。当通过内容 url 简单链接时,无法编辑 svgs 的颜色。但是,我想知道是否可以将 svg 插入到 &lt;object&gt; 标签中,然后在 content 属性中包含 &lt;object&gt;

我觉得这无法完成,但希望其他人有一些见解!

谢谢!

【问题讨论】:

  • 不,不能将 HTML 代码放在 content 属性中,只能是文本或图像。
  • 您实际上可以在伪元素中添加一个 元素,但这不是 DOM 的一部分,因此您将无法通过 DOM 访问它的方法,它甚至无法获取外部资源。但在您的情况下,一件重要的事情是,您实际上可以使用 &lt;funcIRI&gt; (url(pathTo.svg)) 甚至它的一些 uri 编码版本直接在伪元素中加载 svg 图像(有关更多信息,请参阅 here)。

标签: javascript html css svg


【解决方案1】:

.test::after {
  content: "Pseudo-elements <b>cannot contain additional DOM nodes</b>."
}
&lt;div class="test"&gt;Nope. &lt;/div&gt;

“content”属性中只允许使用文本、URI 或一些其他便利值:https://developer.mozilla.org/en-US/docs/Web/CSS/content

【讨论】:

  • 好的。我特此将我的回答修改为“除了一个奇怪且几乎可以肯定是意外的边缘情况,内容属性中只允许使用文本。”
  • 不,这不是“怪异”也不是“意外”。您可以使用 &lt;funcIRI&gt; 在伪元素的 content CSS 属性中显示图像,这意味着您也可以显示 svg 图像。显示 HTML 是一种由此衍生的技巧,但显示图像和 svg 是完全指定的。自己检查your link,接受的值比&lt;string&gt; 多。
  • 很公平,我的立场是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2020-07-08
相关资源
最近更新 更多