当前位置: 首页 > 面试题库 >

CSS:内联SVG之前

厉坚
2023-03-14
问题内容

更新
感谢porneL指出了生成的内容和替换的元素之间的关系。

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

原始问题

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

在此示例中,使用定义的样式:before不适用于SVG(在Firefox29和Chrome35中测试)。与中的content财产有关:before吗?就我所读的内容而言,它尝试在元素中插入生成的内容。.SVG是否失败?

MDN的相关文档:

:: before(:before)

:: before创建一个伪元素,它是匹配元素的第一个子元素。通常用于通过使用content属性将修饰内容添加到元素。默认情况下,此元素是内联的。

内容

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

示例中的代码

   svg {

     left: 50px;

     position: absolute;

     top: 50px;

   }

   svg circle {

     fill: green;

   }

   svg:before {

     border: 2px solid blue;

     content: "";

     height: 100px;

     margin: -6px;

     padding: 4px;

     position: absolute;

     width: 100px;

     z-index: -1;

   }

   div {

     background-color: green;

     height: 100px;

     left: 200px;

     position: absolute;

     top: 150px;

     width: 100px;

   }

   div:before {

     border: 2px solid blue;

     content: "";

     height: 100px;

     margin: -6px;

     padding: 4px;

     position: absolute;

     width: 100px;

     z-index: -1;

   }


<svg height="100" width="100" xmlns="http://www.w3.org/2000/svg">

  <circle cx="50" cy="50" r="50" />

</svg>



<div></div>

问题答案:

不,嵌入式SVG被视为图像,并且图像被 替换 为不允许具有 生成内容的 元素

严格来说,我认为它是不确定的。CSS2.1只是一般地讨论“图像,嵌入式文档和小程序”,而HTML标准则是针对图像而不是SVG进行定义的。



 类似资料:
  • 是否可以在CSS中使用内联SVG定义? 我的意思是:

  • HTML5 支持内联 SVG。SVG Sorry, your browser does not support inline SVG. 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失 SVG 是万维网联盟的标准 SV

  • 问题内容: 我正在寻找一个Java库,该库可以根据其ID / class属性将外部文件与文档内联。 我找到了 jStyleParser, 但不确定这是否适合我。我似乎无法理解它是否可以内联HTML中的元素。文档和示例不是我所期望的。 有没有人可以回答这个问题,或者有另一个图书馆可以解决这个问题? 谢谢 问题答案: 您可以尝试CSSBox。只需查看软件包中包含的 ComputeStyles 演示(有

  • 问题内容: 在具有背景的元素上(图像或纯色并不重要): 我正在尝试使用SVG应用剪切路径。为了实现这一点,我将SVG内联到如下相同的元素中: 您可以运行下面的代码片段或检查JSFiddle。您可以看到原始的SVG图像(黑色)被插入行内,底部有弯曲,并且反应灵敏。相比之下,红色矩形显示的是与应用(或未应用)相同的图像。 我猜我误解了一个或一些属性,尽管在这里找不到确切的错误。任何帮助,将不胜感激。

  • 我希望能够使用css或jquery对svg的各个部分/路径进行样式化/更改 经过一番搜索,我意识到用svg-xml无法做到这一点(不使用额外的js/jQuery脚本或其他脚本) 所以现在我将讨论内联svg 完整的标签应该是什么样子的?我是说正确的标记 这就是我所拥有的: null null 我甚至需要所有版本=“1.1”xmlns=“http://www.w3.org/2000/svg”xmlns

  • 我想发送一个内联SVG图像到PHP脚本转换为PNG与Imagick.为此,我必须知道如何在内联SVG上获得一个Base64字符串。对于画布对象,它是一个简单的“. toDataURL()”,但这不适用于内联SVG,因为它不是元素的全局函数。 http://jsfiddle.net/nikolang/ccx195qj/1/ 但是如何为内联SVG实现这一点?