2017-08-08 61 views
0

我正在制作一个bootstrap-inverse菜单,但是,我希望在菜单中悬停时,SVG徽标已更改为fill: #fff;,而不是默认情况下的默认#000颜色。目前,我的代码如下:在Bootstrap中悬停菜单时更改SVG?

.navbar-inverse:hover { 
 
background: #fff; 
 
}
<nav class="navbar navbar__home navbar-fixed-top"> 
 
    <div class="menu"> 
 

 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle collapsed" data-toggle="modal" data-target="#nav-modal" aria-expanded="false"> 
 
     <span class="sr-only">Toggle navigation</span> 
 
     <span class="icon-bar"></span> 
 
     <span class="icon-bar"></span> 
 
     <span class="icon-bar"></span> 
 
     </button> 
 
      <div class="navbar-brand navbar-brand-centered"><svg version="1.0" xmlns="http://www.w3.org/2000/svg" 
 
width="297.000000pt" height="51.000000pt" viewBox="0 0 297.000000 51.000000" 
 
preserveAspectRatio="xMidYMid meet"> 
 

 
<g transform="translate(0.000000,51.000000) scale(0.100000,-0.100000)" 
 
fill="#000000" stroke="none"> 
 
<path d="M0 255 l0 -245 55 0 55 0 0 100 0 100 75 0 75 0 0 35 0 35 -75 0 -75 
 
0 0 75 0 75 84 0 c78 0 84 1 90 23 13 48 14 47 -139 47 l-145 0 0 -245z"/> 
 
<path d="M350 255 l0 -245 55 0 55 0 0 95 0 95 28 0 c24 0 32 -11 77 -95 l50 
 
-95 58 0 c31 0 57 2 57 5 0 2 -27 48 -60 102 -51 84 -57 99 -44 108 68 43 92 
 
93 80 161 -16 82 -88 114 -261 114 l-95 0 0 -245z m205 161 c37 -16 52 -48 41 
 
-92 -8 -29 -57 -54 -106 -54 l-30 0 0 80 0 80 30 0 c17 0 46 -6 65 -14z"/> 
 
<path d="M790 255 l0 -245 150 0 150 0 0 35 0 35 -95 0 -95 0 0 75 0 75 75 0 
 
75 0 0 35 0 35 -75 0 -75 0 0 65 0 65 90 0 c82 0 90 2 90 19 0 11 3 26 6 35 5 
 
14 -11 16 -145 16 l-151 0 0 -245z"/> 
 
<path d="M1170 255 l0 -245 150 0 150 0 0 35 0 35 -95 0 -95 0 0 75 0 75 75 0 
 
75 0 0 35 0 35 -75 0 -75 0 0 65 0 65 90 0 c82 0 90 2 90 19 0 11 3 26 6 35 5 
 
14 -11 16 -145 16 l-151 0 0 -245z"/> 
 
<path d="M1550 255 l0 -245 55 0 55 0 0 100 0 100 75 0 75 0 0 35 0 35 -75 0 
 
-75 0 0 75 0 75 84 0 c78 0 84 1 90 23 13 48 14 47 -139 47 l-145 0 0 -245z"/> 
 
<path d="M1882 262 c-40 -130 -73 -241 -72 -245 0 -4 24 -7 52 -5 l53 3 14 52 
 
14 53 78 0 78 0 12 -55 12 -55 58 0 57 0 -17 58 c-10 31 -44 141 -76 245 l-58 
 
187 -66 0 -66 0 -73 -238z"/> 
 
<path d="M2290 255 l0 -246 147 3 148 3 6 38 6 37 -99 0 -98 0 0 205 0 205 
 
-55 0 -55 0 0 -245z"/> 
 
<path d="M2650 255 l0 -246 147 3 148 3 6 38 6 37 -99 0 -98 0 0 205 0 205 
 
-55 0 -55 0 0 -245z"/> 
 
</g> 
 
</svg> 
 
</div> 
 

 
     </div> 
 

 

 
     <div class="collapse navbar-collapse" id="navbar-brand-centered category-tabs"> 
 
      <ul class="nav navbar-nav"> 
 
       <li data-toggle="modal" class="boxed" data-target="#nav-modal"><a class="ion-drag" style="font-size:32px;"></a></li> 
 
      </ul> 
 

 
     </div> 
 
     <!-- /.navbar-collapse --> 
 
    </div> 
 
</nav>

+0

你需要创建一个你所面临的问题的工作演示。 – Aslam

+0

@hunzaboy这只是目前的默认导航栏。我只是想这样做,当你将鼠标悬停在导航栏上时,背景变为白色,导航栏链接变为#333,并且SVG徽标更改为不同的颜色,但我没有尝试)): –

+0

您的代码显示除了svg以外什么都没有。没有看到任何东西,我们无法帮助你。尝试创建一个小提琴并将其放入其中。 – Aslam

回答

1

由于结构不具有导航栏逆,你要填写SVG元素而不是DIV,所以目标要更改元素。

.navbar-brand:hover svg path { 
 
fill: #fff; 
 
}
<nav class="navbar navbar__home navbar-fixed-top"> 
 
    <div class="menu"> 
 

 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle collapsed" data-toggle="modal" data-target="#nav-modal" aria-expanded="false"> 
 
     <span class="sr-only">Toggle navigation</span> 
 
     <span class="icon-bar"></span> 
 
     <span class="icon-bar"></span> 
 
     <span class="icon-bar"></span> 
 
     </button> 
 
      <div class="navbar-brand navbar-brand-centered"><svg version="1.0" xmlns="http://www.w3.org/2000/svg" 
 
width="297.000000pt" height="51.000000pt" viewBox="0 0 297.000000 51.000000" 
 
preserveAspectRatio="xMidYMid meet"> 
 

 
<g transform="translate(0.000000,51.000000) scale(0.100000,-0.100000)" 
 
fill="#000000" stroke="none"> 
 
<path d="M0 255 l0 -245 55 0 55 0 0 100 0 100 75 0 75 0 0 35 0 35 -75 0 -75 
 
0 0 75 0 75 84 0 c78 0 84 1 90 23 13 48 14 47 -139 47 l-145 0 0 -245z"/> 
 
<path d="M350 255 l0 -245 55 0 55 0 0 95 0 95 28 0 c24 0 32 -11 77 -95 l50 
 
-95 58 0 c31 0 57 2 57 5 0 2 -27 48 -60 102 -51 84 -57 99 -44 108 68 43 92 
 
93 80 161 -16 82 -88 114 -261 114 l-95 0 0 -245z m205 161 c37 -16 52 -48 41 
 
-92 -8 -29 -57 -54 -106 -54 l-30 0 0 80 0 80 30 0 c17 0 46 -6 65 -14z"/> 
 
<path d="M790 255 l0 -245 150 0 150 0 0 35 0 35 -95 0 -95 0 0 75 0 75 75 0 
 
75 0 0 35 0 35 -75 0 -75 0 0 65 0 65 90 0 c82 0 90 2 90 19 0 11 3 26 6 35 5 
 
14 -11 16 -145 16 l-151 0 0 -245z"/> 
 
<path d="M1170 255 l0 -245 150 0 150 0 0 35 0 35 -95 0 -95 0 0 75 0 75 75 0 
 
75 0 0 35 0 35 -75 0 -75 0 0 65 0 65 90 0 c82 0 90 2 90 19 0 11 3 26 6 35 5 
 
14 -11 16 -145 16 l-151 0 0 -245z"/> 
 
<path d="M1550 255 l0 -245 55 0 55 0 0 100 0 100 75 0 75 0 0 35 0 35 -75 0 
 
-75 0 0 75 0 75 84 0 c78 0 84 1 90 23 13 48 14 47 -139 47 l-145 0 0 -245z"/> 
 
<path d="M1882 262 c-40 -130 -73 -241 -72 -245 0 -4 24 -7 52 -5 l53 3 14 52 
 
14 53 78 0 78 0 12 -55 12 -55 58 0 57 0 -17 58 c-10 31 -44 141 -76 245 l-58 
 
187 -66 0 -66 0 -73 -238z"/> 
 
<path d="M2290 255 l0 -246 147 3 148 3 6 38 6 37 -99 0 -98 0 0 205 0 205 
 
-55 0 -55 0 0 -245z"/> 
 
<path d="M2650 255 l0 -246 147 3 148 3 6 38 6 37 -99 0 -98 0 0 205 0 205 
 
-55 0 -55 0 0 -245z"/> 
 
</g> 
 
</svg> 
 
</div> 
 

 
     </div> 
 

 

 
     <div class="collapse navbar-collapse" id="navbar-brand-centered category-tabs"> 
 
      <ul class="nav navbar-nav"> 
 
       <li data-toggle="modal" class="boxed" data-target="#nav-modal"><a class="ion-drag" style="font-size:32px;"></a></li> 
 
      </ul> 
 

 
     </div> 
 
     <!-- /.navbar-collapse --> 
 
    </div> 
 
</nav>

+0

只是为了澄清为什么这个作品,你的答案没有。此答案将您的选择器从.navbar-inverse更改为:将鼠标悬停为.navbar-brand:hover svg path。类.navbar-inverse不适用于HTML页面上的任何元素。它也针对SVG元素中的路径元素。 – eulloa

+0

好的。我会解释 –

+1

谢谢!我们只是想确保我们为解答添加解释,以便人们可以了解他们的错误所在。 – eulloa

0

我大概迟到了,但你要更改SVG的填充。

这是正确的CSS:

svg:hover path { 
    fill: red; 
}