Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 移动到SVG图标-如何将它们与代码分开?_Html_Css_Svg_Icons - Fatal编程技术网

Html 移动到SVG图标-如何将它们与代码分开?

Html 移动到SVG图标-如何将它们与代码分开?,html,css,svg,icons,Html,Css,Svg,Icons,SVG图标比字体图标有一些优势:它们可以缩放以适应可变大小的容器元素,并且理论上可以更改各个路径的颜色。我也喜欢在Inkscape:P中轻松制作它们 但是,如何在CSS文件中移动SVG,以便它们可以在同一页面上重复使用(如图标字体),并且仍然可以从这些优势中获益 background属性支持SVG,带有background:url(#SVG_元素),但这意味着我必须将SVG放在HTML中:| 如果我将其作为“数据”字符串,那么如何更改同一css文件中的路径颜色?要进行深入讨论,请查看谁对SVG做

SVG图标比字体图标有一些优势:它们可以缩放以适应可变大小的容器元素,并且理论上可以更改各个路径的颜色。我也喜欢在Inkscape:P中轻松制作它们

但是,如何在CSS文件中移动SVG,以便它们可以在同一页面上重复使用(如图标字体),并且仍然可以从这些优势中获益

background属性支持SVG,带有
background:url(#SVG_元素)
,但这意味着我必须将SVG放在HTML中:|
如果我将其作为“数据”字符串,那么如何更改同一css文件中的路径颜色?

要进行深入讨论,请查看谁对SVG做了大量工作。A可能还有很多信息需要你消化


还有一些非常有用的东西要说。

我以前使用过SVG,但没有专门使用SVG图标。然而,根据我所掌握的知识和环顾四周的情况,以下是我得出的结论(在这种情况下,我可能没有完全理解您的问题,请发布更多问题)

但是如何在CSS文件中移动SVG,以便在同一页面上重用它们呢

但这意味着我必须将SVG放在HTML中

SVG基本上是XML,所以不清楚为什么不喜欢将SVG放在HTML文件中。若你们把SVG放在HTML文件中,你们可以只使用外部或内部CSS来设置SVG的样式。这里有一个简单的方法

在HTML文件中:

<circle cx="100" cy="100" r="75" />

在CSS文件中:(在HTML文件中包含CSS文件)


圈{
填充:深粉色;
过渡:填充。3秒放松;
}
圆圈:悬停{
填写:#009966;
}
这里是许多其他选项的第二个选项,使用
标记。下面是一个示例,说明如何使用
标记从单独的文件中使用SVG。这是它的附带说明。还要注意,它使用jQuery插件

这里有一些其他方法可以防止SVG进入HTML,以及它们的优点


希望这对您有所帮助。

如果您使用SVG作为背景图像,则无法更改路径和填充颜色(AFAIK)。但是,您可以使用白色SVG和背景色来创建Metro图标。这正是我们要做的

。图标{
显示:内联块;
宽度:80px;
高度:80px;
背景大小:80%;
背景位置:中心;
背景重复:无重复;
}
.icon-1{
背景图片:url("(3%3%2%22%20%20%22%20%http%22%22%22%http%3%3%3%3%3%3%3%3%10%3%10%10%22%22%22%10%10%10%10%3%1%1%2%2%3%3%3%3%3%3%3%3%3%3%3%3%2%3%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%2%.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2fslink%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2214px%22%20height%3D%2214px%22%20viewBox%3D%220%200%2014%2014%22%20style%3D%22enabled背景%3Anew%200%2014%3B%22%20xml%3space%3D%3D%22%22%22%22%22%3E%2214px%233b%233b%3B%3B%3c多边形填充点C5%207%2C0%205%2C5%200%2C5%204%2C8%202.625%2C13%207%2C10%2011.375%2C13%2010%2C8%20%22%2F%3E%3C%2Fsvg%3E”);
}
.icon-bg-1{
背景色:#800080;
}
.icon-bg-2{
背景色:#DB7093;
}
.icon-bg-3{
背景色:#CD853F;
}
.icon-bg-4{
背景色:#B0E0E6;
}

但是,如何在CSS文件中移动SVG,以便它们可以在同一页面上重复使用(如图标字体),并且仍然可以从这些优势中获益

使用svg模板

.circle-first {
    fill: #12bb34;
}
让我们创建一个svg模板

模板(html)

这可以在页面上的任何位置重复使用

如何更改同一css文件中的路径颜色

简单,只是风格

css

.circle-first {
    fill: #12bb34;
}
工作示例? 给你:

浏览器支持?不是100%确定,但在所有大型浏览器中都支持svg:

似乎您想从
html
代码

为了满足这一要求,可以使用两种方案将
svg
文件嵌入
html

  • 使用
    元素,因此
    xml
    将 从
    html
    ==>中分离出来的结果视图将是
    html
    xml
    的组合,可以使用
    css
    (可能是
    范围
    的一个,例如使用
    在目标页面)
  • 使用
    元素,因此
    xml
    将被分隔 从
    html
    ==>生成的视图将仅为
    html
    css
    无法对
    svg
    文件的
    xml
    内容执行
  • 另一种使用
    svg
    的方法是使用内联技术,比如说,使用
    标记,这样您也可以使用内联样式表来实现这一点,但是您希望将
    xml
    html
    分离开来:)

    有关更多信息:
    而且。

    为了保留SVG图标的细节,目前除了在HTML页面中包含
    之外,别无选择

    描述了普遍接受的最佳包含实践。它类似于:

  • 将SVG图标定义存储为

    
    
  • 需要使用图标时,请参考图标定义:

    <svg class='icon'>
       <use xlink:href='#icon-puppy'/>
    </svg>
    
    
    

  • 描述如何在HTML中动态包含SVG文件。

    您还可以深入了解项目。您将找到一些使用SVG的简洁方法

    他们最好的想法是将所有图标合并到一个文件“sprite.svg”中。每个svg图标都需要由一个带有id的
    标记包围。然后,您可以随时通过xlink访问它,如其他答案中所述

    通过加载整个sprite.svg,您将获得加载时间和整洁度。

    您还可以
    .circle-first {
        fill: #12bb34;
    }
    
    <svg id='my-icons'>
       <symbol id='icon-puppy'> <!-- puppy icon goes here --> </symbol>
       <symbol id='icon-kitty'> <!-- kitty icon goes here --> </symbol>
    </svg>
    
    <svg class='icon'>
       <use xlink:href='#icon-puppy'/>
    </svg>