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

如何在元素的伪元素之前添加svg作为内容?[复制]

澹台蕴藉
2023-03-14

我试图在pseudo元素之前的:的内容中使用svg。

为此,我提出了以下问题:有没有办法将SVG用作伪元素的内容:before或:after,但我无法使其工作。

我只有一个简单的SVG:

<svg height="100" width="100">
  <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

以下是我尝试过的:

示例1:在内容属性上插入svg

css lang-css prettyprint-override">#square{
   background-color: green;
   width: 100px;
   height: 100px;
}

#square:before{
   display: block;
   content: url("data:image/svg+xml;charset=UTF-8,<svg height='100' width='100'><circle cx='50' cy='50' r='40' stroke='black' stroke-width='3' fill='red' /></svg>");
   background-size: 28px 28px;
   height: 28px;
   width: 28px;
}
<div id="square"></div>

示例2:使用base64编码

#square{
   background-color: green;
   width: 100px;
   height: 100px;
}

#square:before{
   display: block;
   content: url("data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNDAiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iMyIgZmlsbD0icmVkIiAvPjwvc3ZnPg==");
   background-size: 28px 28px;
   height: 28px;
   width: 28px;
}
<div id="square"></div>

正如你所看到的,这些例子中的任何一个都不起作用,所以我确信我遗漏了一些东西。

我做错了什么?

提前感谢!


共有1个答案

李景天
2023-03-14

似乎SVG标签需要更多属性。

#square{
   background-color: green;
   width: 100px;
   height: 100px;
}

#square:before{
   display: block;
   content: url("data:image/svg+xml;charset=UTF-8, <svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='100' width='100'><circle cx='50' cy='50' r='40' stroke='black' stroke-width='3' fill='red' /></svg>");
   background-size: 28px 28px;
   height: 28px;
   width: 28px;
}
<div id="square"></div>
 类似资料:
  • 问题内容: 我有一个:before开头的’quote’和一个:after结束的报价。 现在,我想要的是一个:after:after供“引用”参考,但我无法使其正常工作。 有人知道这是否可能吗? 到目前为止,我的代码: 问题答案: 已经提出了嵌套和伪元素的想法;请参阅“生成和替换的内容”模块的这一部分。但是,该模块已被放弃,等待完全重写,因此在重新发布该文档之前,我不会屏息。即便如此,嵌套内容伪元素

  • 问题内容: 我想使用一个开关在网页上放置段落标签。 我使用after伪元素: 现在,我需要从页面中删除此CSS代码。 如何轻松做到这一点? 我要补充一点: jQuery已在页面上使用 而且我不想包含或删除包含CSS的文件。 问题答案: p:after { content: none; } none 是将内容(如果指定)设置为 空 的官方值。

  • 问题内容: 我无权访问页面的HTML或PHP,只能通过CSS进行编辑。我一直在网站上进行修改,并通过或伪元素添加文本,并且发现转义Unicode应该用于添加内容之前或之后的空格等内容。 如何在属性中添加多行? 在示例中,HTML换行符 仅用于可视化 我想要实现的目标: 问题答案: 该属性指出: 作者可以通过在“ content”属性之后的字符串之一中写入“ \ A”转义序列来在生成的内容中包含换行

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

  • 问题内容: 在CSS中,将鼠标悬停在元素上时,可以使用:hover伪类为其指定视图: 如何使用jquery添加或“打开”此伪类?通常在jQuery中,如果您想添加一个类,可以这样做: 我已经尝试过“ hover”,但这实际上是在元素中添加了一个名为“ hover”的类。 如果有人知道写什么,请告诉我!谢谢! 问题答案: 您不能强迫某个伪类使用jQuery来应用。伪类(尤其是动态伪类)不是这样工作的

  • 我的D3.js代码生成以下HTML(取自inspect元素) 路径呈现一个底部有文本的圆圈。 最终,我希望文本位于SVG元素边界内的圆圈下方。如果SVG元素更大,G元素呈现得更大。我需要控制G元素的大小或路径元素的大小。 粗略的谷歌搜索没有多大帮助 谢谢你的洞察力。