gpt4 book ai didi

内带有 SVG 的 CSS 选择器特异性
转载 作者:行者123 更新时间:2023-11-28 12:08:40 25 4
gpt4 key购买 nike

我有以下代码:

<body class="active">
<object data="css/svg/circle.svg" type="image/svg+xml">
<p> Your browser doesn't support SVG.</p>
</object>
</body>

SVG 很简单,例如:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet href="../style.css" type="text/css"?>
<svg id="circle" height="100" width="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>

active<body> 上课通过javascript切换。然后我有以下 CSS:

#circle {
opacity: 1;
}
.active #circle {
opacity: 0.5;
}

问题是,如果我添加带有 <object> 的 SVG标记,第二个选择器,active #circle , 不起作用。如果我将 SVG 内联,那么它就可以工作。请注意,我也在 SVG 文件中包含了 CSS。我想使用 <object>因为真正的 SVG 并不是那么简单所以我的 html 会变得困惑。有办法实现吗?

提前致谢

最佳答案

这里有一些你可以使用的方法

object 留空并在页面加载时使用 ajax 将其作为内联 svg 加载,...

HTML

<object data="" data-svg="path-2-image.svg" type="image/svg+xml">
<p> Your browser doesn't support SVG.</p>
</object>

...或者为什么不放入普通元素中,例如 div

<div data-svg="path-2-image.svg">
</div>

脚本(概念)

<script>
// on load/dom ready
var trg = document.querySelector('[data-svg]');
var svgpath = trg.getAttribute('data-svg');
call-your-SVGloader-function(obj,svg);
</script>

注意:我还认为您需要像使用 div 一样为对象使用 trg.innerHTML = ...


也在考虑使用图像,但还没有尝试过这是否真的有效

<img src="path-2-image.svg" alt="">

关于<object> 内带有 SVG 的 CSS 选择器特异性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36340856/

25 4 0