html - CSS opacity wont work inside li on hover -
opacity:1; seems not work when hover on link,although commands background:red seems work.can explain why , how make opacity work?
css:
.secondblock{ border-bottom: solid black 1px; height:260px; text-decoration: none; } .secondblock:hover li{ opacity:0.5;} ul li a:hover{ background:red; opacity:1; } /*.secondblock li:hover{*/ /*opacity:1.0;*/ /*}*/ html:
<div class="secondblock"> <ul> <li><a href="" class="secondlinks secondlink1"><img src="images/i1.png" class="imagelist">Главная</a></li> <li><a href="" class="secondlinks secondlink2"><img src="images/i2.png" class="imagelist">Служба</a></li> <li><a href="" class="secondlinks secondlink3"><img src="images/i3.png" class="imagelist">Рендзина</a></li> <li><a href="" class="secondlinks secondlink4"><img src="images/i4.png" class="imagelist">Солеперенос</a></li> <li><a href="" class="secondlinks secondlink5"><img src="images/i5.png" class="imagelist">Медиапланировние</a></li> <li><a href="" class="secondlinks secondlink6"><img src="images/i6.png" class="imagelist">Таргетирование</a></li> <li><a href="" class="secondlinks secondlink7"><img src="images/i7.png" class="imagelist">Позиционирование</a></li> <li><a href="" class="secondlinks secondlink8"><img src="images/i8.png" class="imagelist">Медиамикс</a></li> <li><a href="" class="secondlinks secondlink9"><img src="images/i9.png" class="imagelist">Законодательство</a></li> <li><a href="" class="secondlinks secondlink10"><img src="images/i10.png" class="imagelist">Жеода</a></li> </ul> update: `
.secondblock:hover a{ opacity:0.5; } ul li a:hover{ background:red; opacity:1; } `
the css opacity property relative parents opacity:x; children equals opacity:x*{parentopacity}; example:
.parent { opacity:0.5; } .children { opacity:0.5; /* equals 0.5*0.5 0.25 */ } demo explain it.
documentation mdn:
the value applies element whole, including contents, though value not inherited child elements. thus, element , contained children have same opacity relative element's background, if element , children have different opacities relative 1 another.
.parent { opacity:0.5; } .children { width:200px; height:200px; background-color:red; } #children1 { opacity:0.5; /* 0.5 of parent */ } <div class="parent"> <div class="children" id="children1"> </div> <div class="children" id="children2"> </div> </div> solution:
since want change link opacity can use color:rgba(0,0,0,x); instead.
then:
.parent { color:rgba(0,0,0,0.5); /* opacity:0.5; */ } .children { color:rgba(0,0,0,1); /* opacity:1; */ } also have change img opacity when hover a.
working demo.
.secondblock { border-bottom: solid black 1px; height: 260px; text-decoration: none; } .secondblock { color:rgba(0,0,0,1); } .secondblock:hover li { color:rgba(0,0,0,0.5); } .secondblock:hover li img { opacity:0.5; } .secondblock ul li a:hover { color:rgba(0,0,0,1); } .secondblock ul li a:hover > img { opacity:1; } <div class="secondblock"> <ul> <li> <a href="" class="secondlinks secondlink6"><img src="http://www.placehold.it/32/32" class="imagelist">Таргетирование</a> </li> <li> <a href="" class="secondlinks secondlink7"><img src="http://www.placehold.it/32/32" class="imagelist">Позиционирование</a> </li> <li> <a href="" class="secondlinks secondlink8"><img src="http://www.placehold.it/32/32" class="imagelist">Медиамикс</a> </li> </ul>
Comments
Post a Comment