首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以在元素之前添加SVG::并访问笔划和填充吗?

可以在元素之前添加SVG::并访问笔划和填充吗?
EN

Stack Overflow用户
提问于 2016-03-24 00:53:18
回答 1查看 776关注 0票数 2

是否可以像这样在CSS中添加一个之前的元素:

代码语言:javascript
复制
    ul {
        li:before {
            content: url('../icons/fancy-symbol.svg');
        }
    }

并访问svg的对象(例如,特定的线条或矩形)和属性(例如,描边宽度、删除线和填充颜色)?

或者是否有针对此类情况的变通方法?

用例是在悬停时为一些线条上色,并在单击时为svg设置动画。

EN

回答 1

Stack Overflow用户

发布于 2017-03-21 03:22:36

您可以在SVG上指定一个片段,比如../icons/fancy-symbol.svg#red,然后让文件中的CSS对此做出反应:

代码语言:javascript
复制
<style>
  #red:target ~ .some-element-here {
    fill: red;
  }
</style>

这不会让您动态地指定属性,但它对于交互状态很有用,特别是对于预处理器。

或者,如果SVG文件足够小,您可以使用预处理器更改数据URI中的属性,如使用sass-svg,或手动更改:

代码语言:javascript
复制
.li:before {
  content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' 
  fill='#{$color}'%3E...");
}

(顺便说一句,使用ul { list-style-image: url(...) }可能比使用伪元素更容易。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36184189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档