Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS:before-on-inlinesvg_Css_Html_Svg_Pseudo Element - Fatal编程技术网

CSS:before-on-inlinesvg

CSS:before-on-inlinesvg,css,html,svg,pseudo-element,Css,Html,Svg,Pseudo Element,更新 感谢Ponnel指出生成内容和替换元素之间的关系。 我发现这篇文章就是关于这个主题的: 有趣的是,一份名为“CSS3生成和替换的内容模块”(11年前)的W3C文档定义了伪元素:outside,它可以提供一种解决方案,通过将生成的内容放置在替换的元素之外,而不是尝试将其附加到内部,来使用生成的内容和替换的元素 原始问题 有没有一种方法可以使用CSS:before和:after伪元素来设置内联SVG元素的样式? 例如: 在本例中,使用:before定义的样式未应用于SVG(在Firefox

更新
感谢Ponnel指出生成内容和替换元素之间的关系。
我发现这篇文章就是关于这个主题的:

有趣的是,一份名为“CSS3生成和替换的内容模块”(11年前)的W3C文档定义了伪元素
:outside
,它可以提供一种解决方案,通过将生成的内容放置在替换的元素之外,而不是尝试将其附加到内部,来使用生成的内容和替换的元素


原始问题

有没有一种方法可以使用CSS
:before
:after
伪元素来设置内联SVG元素的样式?

例如:

在本例中,使用
:before
定义的样式未应用于SVG(在Firefox 29和Chrome 35中测试)。 是关于
:before
中的
内容
属性吗?就我所读的内容而言,它试图在元素中插入生成的内容。。这是SVG失败的原因吗


来自MDN的相关文档:

:之前(:之前)

::before创建的伪元素是 元素匹配。通常用于通过以下方式向元素添加装饰性内容: 使用内容属性。默认情况下,此元素是内联的

内容

content CSS属性与::before和::after一起使用 伪元素生成元素中的内容。插入的对象 使用content属性的是匿名替换的元素


示例中的代码:

svg{
左:50px;
位置:绝对位置;
顶部:50px;
}
svg圆{
填充:绿色;
}
svg:以前{
边框:2件纯蓝;
内容:“;
高度:100px;
利润率:-6px;
填充:4px;
位置:绝对位置;
宽度:100px;
z指数:-1;
}
div{
背景颜色:绿色;
高度:100px;
左:200px;
位置:绝对位置;
顶部:150px;
宽度:100px;
}
部门:以前{
边框:2件纯蓝;
内容:“;
高度:100px;
利润率:-6px;
填充:4px;
位置:绝对位置;
宽度:100px;
z指数:-1;
}

否,内联SVG被视为图像,图像被替换为不允许生成内容的元素


严格地说,我认为它没有定义。一般来说,只讨论“图像、嵌入式文档和小程序”,并为图像定义它,而不是明确地定义SVG。

严格来说,
元素可以包含生成的内容;不能输入的是
输入
元素(包括
type=“button”
)的元素。谢谢您的回答!我在更新中链接的文章引用了一个反例,其中Chrome允许
输入
元素上的
:after
。然而,他们注意到,这可能不是预期的行为。来自MDN:“在CSS中,被替换的元素是一种表示超出CSS范围的元素。这些是一种外部对象,其表示与CSS无关。”-尽管我从未发现SVG作为示例提到,它应该属于这一类。如果内联SVG被视为图像,那么为什么我可以在HTML文档中使用CSS来为内联SVG的各个部分设置样式?@DavidThomas您能澄清一下您的观点吗?SVG是否允许通过CSS为某些元素设置内容?