为什么CSS没有风格化SVG?

时间:2014-03-01 02:10:13

标签: html css svg

我有一个嵌入在对象标签中的SVG图像,我正在尝试使用CSS进行样式化。 SVG正在页面上显示,但CSS中的更改不执行任何操作。我想我可能有一个问题,我如何将CSS与HTML链接。我不想在HTML内部链接CSS。为什么SVG不继承CSS样式?

HTML

<html>
<head>
    <link rel="stylesheet" type="text/css" href="stylesheet.css" />
    <?xml-stylesheet type="text/css" href="stylesheet_svg.css" ?>
    <title>Test</title>
</head>
<body>
    <div id="topheading">
        <div id="logobox">
            <object class="logo" type="image/svg+xml" data="Wolf_template_empty.svg"><img id="logocenter" data="Wolf_template_empty.gif" /></object>
        </div>
        <h1 id="ip"></h1>
    </div>
</body>

CSS

.logo {
stroke: #006600;
}

3 个答案:

答案 0 :(得分:2)

出于同样的原因,CSS样式不会渗透到iframe中。也就是说,它处于不同的上下文中,如果您希望页面中的样式影响它,则必须直接在页面上嵌入SVG。您也可以将CSS添加到SVG中,它会影响SVG(但不会影响HTML)。

答案 1 :(得分:0)

在CSS中设置图像样式时,你受到限制。你最好在Illustrator或Photoshop中进行更改。如果使用透明背景保存图像,则可以为图像添加背景颜色。除此之外,定位是使用CSS操纵图像的唯一方法。查看此文章以获取参考 - http://css-tricks.com/using-svg/

答案 2 :(得分:0)

Stroke不是<object>标记的有效CSS属性。如果您希望SVG文件引用外部CSS,则必须添加对指定SVG文件中的笔划的外部CSS文件的引用。您没有为SVG提供源代码,因此我不知道您是否尝试过这样做。