SVG悬停矩形改变颜色

Posted

技术标签:

【中文标题】SVG悬停矩形改变颜色【英文标题】:Svg hover rect change color 【发布时间】:2015-01-29 07:23:27 【问题描述】:

所以我有这个包含一个小矩形的巨大 svg 文件。当你将鼠标悬停在它上面时,我希望这个矩形改变颜色。我不能使用 java 的 onmouseover b/c,这是一个学校项目,我们被告知只能使用 html、html5、css 和 css3。我一直在尝试各种事情,但我不知道为什么它不起作用。我只添加了矩形 g 容器位。还有我正在使用的样式代码。我已经尝试将此样式代码添加到标题中,就在 svg 起始标签之后,添加到 g 容器中,添加到 rect 本身(在这种情况下没有样式标签)。我可以添加整个 svg 文件,但那东西很大,所以我只会根据要求这样做。

 <g
     inkscape:groupmode="layer"
     id="layer12"
     inkscape:label="Hobitton Stadticon"
     style="display:inline"
     sodipodi:insensitive="true"
     >
     <style type="text/css">
 <![CDATA[
     .rect10023:hover fill: #0000FF;]]>
     </style>

       <rect
       style="fill:#DF0101;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;"
       id="rect10023"
       
       
       x="266.97247"
       y="201.43393" 
       />
    <text
       xml:space="preserve"
       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
       x="343.72607"
       y="-32.097607"
       id="text10025"
       sodipodi:linespacing="125%"
       transform="matrix(0.72346735,0.6903586,-0.6903586,0.72346735,0,0)"
       inkscape:transform-center-x="10.550459"
       inkscape:transform-center-y="-7.7981651"><tspan
         sodipodi:role="line"
         id="tspan10027"
         x="343.72607"
         y="-32.097607"
         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Chiller;-inkscape-font-specification:Chiller">Hobbiton</tspan></text>
  </g>

【问题讨论】:

对于初学者:1)矩形有一个 id - 不是一个类,所以使用#rect10023:hover 2)你要么需要从内联样式中删除矩形的填充,要么你需要在课堂上使用填充:#0000FF!important; 天哪,谢谢!现在工作正常!感谢您的快速响应! 【参考方案1】:

1) rect 有一个 id - 不是一个类,所以使用#rect10023:hover

2) 您要么需要从内联样式中删除矩形的填充,要么

你需要在课堂上使用fill: #0000FF!important;

【讨论】:

【参考方案2】:

这是因为您使用内联样式定义了矩形的填充,并且您设置的是类而不是 ID。将. 更改为# 并删除fill:#DF0101; 并且悬停工作。

【讨论】:

以上是关于SVG悬停矩形改变颜色的主要内容,如果未能解决你的问题,请参考以下文章

text SVG在悬停时改变颜色

将鼠标悬停在图像上时如何更改 SVG 的颜色?

使用对象时如何在鼠标悬停时更改 SVG 笔触颜色

SVG onmouseover / hover 不起作用[重复]

悬停链接并在 SVG 中更改颜色 [重复]

悬停按钮时如何更改svg颜色