当前位置: 首页 > 知识库问答 >
问题:

有没有办法使用SVG作为伪元素中的内容::bef矿石或::af

狄易安
2023-03-14

我想使用::before将SVG图像放置在一些选定元素之前:

#mydiv::before {
  content: '<svg ... code here</svg>';
  display: block;
  width: 22px;
  height: 10px;
  margin: 10px 5px 0 10px;
}

上面的代码只显示明文。
我检查了规范,似乎对content可以是什么有一些限制。CSScontent属性解决方案更可取。

共有3个答案

长孙宜
2023-03-14

您可以将SVG添加为空:后:前的背景图像。

给你:

.anchor:before {
  display: block;
  content: ' ';
  background-image: url('../images/anchor.svg');
  background-size: 28px 28px;
  height: 28px;
  width: 28px;
}

华良平
2023-03-14

您可以使用CSS函数

#mydiv::before {
  content: url("data:image/svg+xml; utf8, <svg ... code here</svg>");
  display: block;
  width: 22px;
  height: 10px;
  margin: 10px 5px 0 10px;
}

确保SVG不包含任何#符号。使用像这样的编码器。

贺佑运
2023-03-14

是的,你可以!刚刚测试了这个,它工作得很好,这太棒了!它仍然不适用于html,但适用于svg。

SVG URL编码器,用于格式化您自己的SVG,如下所示。

css lang-css prettyprint-override">#test::before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='100' cy='50' r='40' stroke='black' stroke-width='2' fill='red'/%3E%3Cpolyline points='20,20 40,25 60,40 80,120 120,140 200,180' style='fill:none;stroke:black;stroke-width:3'/%3E%3C/svg%3E ");
  width: 200px;
  height: 200px;
}
<div id="test"></div>
 类似资料:
  • 我必须在的伪元素中将图标显示为SVG路径。 根据我在网上找到的许多资源,仅此一项就非常简单,可以通过以下代码实现: 问题是我还需要将默认的黑色更改为其他颜色,理想情况下更改为CSS变量(但如果这是不可能的,那么简单的也是可以接受的。但是,无论我尝试什么,它似乎都不起作用...请帮忙吗?我为你创作了这把小提琴。腾讯网.

  • 问题内容: 我想将一些SVG图像放置在某些选定元素之前。我正在使用JQuery,但这无关紧要。我想将:before元素设置为: 如果我如上所示进行操作,它将仅显示字符串。我检查了规格,似乎对内容有一些限制。是否可以解决此限制?只有内容CSS与我的问题有关。 问题答案: 是的你可以!刚刚测试过,效果很好,太棒了!它仍然不能与html一起使用,但可以与svg一起使用。 在我的index.html中,我

  • 此问题是线程下的扩展。有没有一种方法可以将SVG用作伪元素:before或:after中的内容。 我试图使用伪类在div之后附加一个svg三角形。 上面的代码在chrome中运行良好,但在IE中它没有加载svg内容。 我也尝试了背景图像属性,但它似乎在IE(版本 将此svg附加为带有伪类的内容的正确方法是什么?

  • 我的模式是: 我的xml将是: 案例1。 或案例2。 对于案例2,没有问题。但对于案例1,我得到了以下错误: 如何修改wsdl,使其同时接受案例1和案例2?请帮忙。

  • 问题内容: 我想将动态文本用作标签中某些元素的背景。因此,我可以使用图像(动态文本)。我该如何仅使用CSS或JavaScript? 问题答案: 您可以在相对定位的元素内有一个绝对定位的元素: 然后是CSS: