这是一个由两部分组成的问题,见下文.
尝试通过CSS将%符号添加到SVG文本的实例时使用:after伪元素我遇到了这个问题(提供了JsFiddle).我使用的是Chrome版本24.0.1312.57.
HTML:
<span class="percentage2">This is 20</span>
<p class="percentage2">This is 20</p>
<h1 class="percentage2">This is 20</h1>
<div class="wrapper">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<text x="20" y="20" style="fill:black;" class="percentage2">This is 20</text>
</svg>
</div>
CSS:
.wrapper {
width: 300px;
height:80px;
overflow:hidden;
}
.percentage2:after {
content:"%";
display: inline-block;
font-size: 0.7em;
position:relative;
left:100px;
}
意外的结果是%符号出现两次:一次出现在包装元素的最左边,一次出现在应该放置的位置.
第一个问题:为什么会发生这种情况?
如果我没有指定显示:inline-block:在将内容作为内联插入HTML元素后,但不会出现在SVG中.
CSS:
.percentage1:after {
content:"%";
font-size:0.7em;
}
截图:
第二个问题:有没有办法将内联伪元素添加到SVG文本元素?应用时支持哪些其他显示模式:元素到SVG元素之后?
最佳答案 就像Duopixel写的那样,SVG不支持CSS:在应用于svg元素的伪元素之前或之后. SVG可能会在将来允许这样做,但是仍然没有定义它应该如何工作.