html - 如何限制 CSS 样式仅适用于特定的 SVG?
问题描述
我有几个想要使用 CSS 设置样式的 SVG。但是,这些样式似乎适用于 SVG。
不幸的是,我不能在 SVG 元素或 iframe 上使用类。
有没有办法仅将样式应用于特定的 SVG?
这是一个示例,其中在 SVG 中使用了不同的样式,但第二种显然适用于第一种。
<svg>
<style>
line {
stroke: red;
}
</style>
<line x1="0" y1="0" x2="100" y2="100">
</svg>
<svg>
<style>
line {
stroke: blue;
}
</style>
<line x1="0" y1="0" x2="100" y2="100">
</svg>
https://codepen.io/anon/pen/LmmyEe
编辑
也许这是一个更好的例子:
<svg>
<style>
.colored {
stroke: red;
}
</style>
<line class="colored" x1="0" y1="0" x2="100" y2="100">
</svg>
<svg>
<style>
.colored {
stroke: blue;
}
</style>
<line class="colored" x1="0" y1="0" x2="100" y2="100">
</svg>
我希望能够让用户编辑每个 SVG 的样式,以便用户只需要知道一个类对所有 SVG 做了什么。如果我要使用不同的类,比如“colored1”和“colored2”左右,那会让我想避免的用户变得更棘手。
解决方案
您可以使用nth-child
或类似的选择器来定位它们:
svg:nth-child(1) line {
stroke: black;
}
<svg>
<style>
line {
stroke: red;
}
</style>
<line x1="0" y1="0" x2="100" y2="100"/>
</svg>
<svg>
<style>
line {
stroke: blue;
}
</style>
<line x1="0" y1="0" x2="100" y2="100"/>
</svg>
如果你不能这样做,那么只需将它包装在一个元素中并向其中添加一个类,然后你可以使用它来定位 svg
或者你可以在你的 svgs 中使用内联样式(但我猜如果你不能添加类,你就不能编辑 svg)
推荐阅读
- git - 重新排序本地提交
- python - 将整数旋转到固定位数
- html - ALT 文本未显示在 Outlook、Yahoo 等主要电子邮件客户端上
- java - 如何在 Java 中打开 LMDB 数据库?
- javascript - Node js pdf-make lib 剂量是否支持大数据?
- function - 是否可以在运行时在 SBCL/Common Lisp 中检查/获取函数类型或其签名?
- java - java - 如何将从WAV文件读取的数据转换为Java中签名的16位原始音频数据数组?
- angular - 您正在运行 Node.js 的 v8.9.3 版本,Angular CLI 8.0+ 不支持该版本
- ios - WKWebCache 缓存
- php - 修改html模板