【发布时间】:2017-02-03 22:39:51
【问题描述】:
我正在尝试使用响应式徽标,悬停时颜色会发生变化。
标志的三个版本通过媒体查询弹出和弹出,都需要相同的效果,但只有最后一个 svg 有效
HTML:
<section class="welcome">
<span id="slide">
<svg id="RH1" data-name="RH1" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 840 158.3">...</svg>
<svg id="RH2" data-name="RH2" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 595.2 143">...</svg>
<svg id="RH3" data-name="RH3" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 143.9">...</svg>
</span>
</section>
CSS:
svg {
width:600px;
height:115px;
position:fixed;
top:calc(50% - 50px);
left:50%;
margin-top:-56.5px;
margin-left:-300px;
cursor:pointer;
fill:#3c9fd9;
}
svg:hover path {
fill:#fff !important;
}
#RH2, #RH3 {opacity:0;}
@media only screen and (max-width:1100px) {#RH1, #RH3 {opacity:0;}#RH2 {opacity:1;}}
@media only screen and (max-width:570px) {#RH1, #RH2 {opacity:0;}#RH3 {opacity:1;}}
提前谢谢你!
【问题讨论】:
-
“但只有最后一个 svg 有效” - 这是因为您将它们全部放在同一位置上 - 所以很自然,您的鼠标光标只会“触摸”最佳。如果你想让它起作用,那么你不能只改变“其他”的不透明度,你还需要把它们放在 z 轴的下方。
-
噢!谢谢CBroe,我知道它必须很简单。感谢您的帮助
标签: html css svg hover responsive