我煞费苦心地创建了一个搜索图标,并将其导出为svg。这现在出现在一个网站的标题上,但我正试图让css控制它的大小和颜色,这样我就可以相应地调整图标的大小,匹配网站上文本的颜色,并且当用户滚动图标时,还会有某种滚动颜色的变化或变亮/变暗。我不想使用内联svg,但我很乐意使用下面的img-src或对象技术。
<a href="#" onClick={this.onSearchClick} title="Search site">
<img src="//example-image-server/i/search_classic.svg" height="20" alt="Search the site"/>
<object type="image/svg+xml" data="//example-image-server/i/search_classic.svg" height="20" className="search-classic">Your browser does not support SVGs</object>
<span>Search</span>
如果不使用javascript,我如何控制颜色和大小。
我尝试过创建一个css类“search-classic”并设置fill: value,但是没有效果。
请注意,这段代码是针对React的,因此使用了className=“search classic”,而不仅仅是class=“search-classic”
问题的作者写道:
我不想使用内联svg,但我很乐意使用下面的imgsrc或对象技术。我尝试创建一个css类“searchclassic”并设置fill:value,但没有效果。
如果我理解正确,您希望从外部样式表中更改图标的样式。
>
修改SVG文件图标
这应该正好是第一行,否则可能会出现问题。
将 svg 代码包装为
<?xml-stylesheet type="text/css" href="svg.css" ?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
width="48px" height="48px" viewBox="0 0 48 48">
<symbol id="searchIcon" viewBox="0 0 48 48">
<path id="myPath" d="M35,40H11v-0.051C5.947,39.447,2,35.186.... z"/>
</symbol>
</svg>
我只是引用两次谷歌搜索的结果。提问前请自行研究。
[…]您可以通过使用< code >链接到SVG文件,并保留使用CSS影响其部分的能力
<svg ...>
<style>
/* SVG specific fancy CSS styling here */
</style>
...
</svg>
[...]SVG有一种方法可以声明外部样式表,这对于创作和缓存等等都很好。这仅适用于
<?xml-stylesheet type="text/css" href="svg.css" ?>
来源:“使用SVG”-CSS-Tricks
我查看了您在评论中提供的codepen项目。让我们获取以下文件并修复它:
<svg xmlns="http://www.w3.org/2000/svg" width="136" height="136" viewBox="0 0 136 136">
<style type="text/css" media="screen">
<![CDATA[
g {
fill: yellow;
stroke: black;
stroke-width: 1;
transition: fill 1s linear 0s;
}
g:hover {
fill: blue;
}
]]>
</style>
<path d="M121…Z"/>
</svg>
您正在尝试样式
g
,这是一个 SVG 组。一个组可以包含多个路径、圆形、正方形等。不幸的是,您在此SVG图标中没有任何组。你只有一条路
。
此外,要启用< code>:hover
选择器,您必须在元素上启用< code>pointer-events。这份文件应该提供更多这方面的信息。
总而言之,这是一个工作示例:
<svg xmlns="http://www.w3.org/2000/svg" width="136" height="136" viewBox="0 0 136 136">
<style type="text/css" media="screen">
<![CDATA[
path { /* TARGET THE CORRECT ELEMENT */
fill: yellow;
stroke: black;
stroke-width: 1;
transition: fill 1s linear 0s;
pointer-events: all; /* ENABLE POINTER EVENTS */
}
path:hover { /* TARGET THE CORRECT ELEMENT */
fill: blue;
}
]]>
</style>
<path d="M121…Z"/>
</svg>
(对象SVG和img SVG不能为我的目的工作。它必须是内联的。解决方案不必是CSS...JavaScript绝对是一个可以接受的解决方案。)
如何不是用 width 和 height 控制 svg 的渲染大小? 下面的网站 https://nicegui.io/ 首页左上角的的 「NiceGUI」的尺寸不大不小刚刚好,对应的 svg 是:https://github.com/zauberzeug/nicegui/blob/main/website/static/nicegui_word.svg https://nicegui.io/ 这
我的html文件中有以下svg图像: 现在,我试图改变颜色使用这个css代码: 然而,一切都没有改变。使用css更改svg图像路径颜色的正确方法是什么?谢谢
问题内容: 这是我想出的一小段代码的自我问答。 当前,没有一种简单的方法可以嵌入SVG图像,然后可以通过CSS访问SVG元素。有多种使用JS SVG框架的方法,但是如果您要做的只是制作带有过渡状态的简单图标,它们将过于复杂。 所以这就是我想出的,我认为这是迄今为止在网站上使用SVG文件的最简单方法。它的概念来自早期的文本到图像替换方法,但据我所知,从未对SVG进行过处理。 这是问题: 如何在不使用
这是我想出的一段方便的代码的自我问答。 目前,还没有一种简单的方法来嵌入SVG图像,然后通过CSS访问SVG元素。使用JS SVG框架的方法多种多样,但如果您所做的只是制作一个带有滚动状态的简单图标,那么这些方法就过于复杂了。 所以这里是我想出的,我认为这是迄今为止在一个网站上使用SVG文件的最简单的方法。它的概念来自早期的文本到图像的替换方法,但据我所知,SVG从来没有这样做过。 这就是问题所在
问题内容: 有一个iframe,其内容基本上超出了框架的容量。框架的大小基于浏览器的屏幕尺寸,并允许溢出滚动,这在除iOS之外的所有浏览器上均能完美运行。在iOS上,Safari决定调整框架大小以适合内容。不是您所期望的。 HTML: CSS: 问题答案: 您可以通过添加带有和的包装div使其工作。