我的网站上有几个div元素,它们是具有插入框阴影的类的一部分。当我将鼠标悬停在那些div框上时,我希望从box-shadow中删除inset属性,并且我希望它转换为向外阴影。但是,虽然阴影正确更改,但在更改期间不会转换。它只是瞬间切换阴影。我该如何解决这个问题?
这是HTML:
<header>
<div id="header-stuff">
<p class="header-big">Green Homes 101</p>
<div id="header-links">
<div class="header-link">
<a href="alt-en.html#top">
<img src="images/index/alt-en.svg" alt="Alternate Energy" />
<p>Alternate Energy</p>
</a>
</div>
<div class="header-link">
<a href="diy.html#top">
<img src="images/index/diy.svg" alt="DIY" />
<p>DIY</p>
</a>
</div>
<div class="header-link">
<a href="buying.html#top">
<img src="images/index/buying.svg" alt="Buying Green Homes" />
<p>Buying Green Homes</p>
</a>
</div>
<div class="header-link">
<a href="about.html#top">
<img src="images/index/about.svg" alt="About Us" />
<p>About Us</p>
</a>
</div>
</div>
</div>
</header>
这是CSS:
.header-link {
display: inline-block;
background-color: rgba(50, 125, 42, 0.75);
margin: 1%;
overflow: hidden;
border-radius: 10%;
box-shadow:0 0 10px rgba(0, 0, 0, 0.7) inset;
-ms-transition: all .25s linear;
-moz-transition: all .25s linear;
-webkit-transition: all .25s linear;
-o-transition: all .25s linear;
}
.header-link > a {
display: block;
width: 100%;
height: 100%;
color: rgba(10, 85, 2, 0.35);
text-shadow: 1px 4px 6px rgba(33, 108, 25, 0.85), 0 0 0 #000, 1px 4px 6px rgba(33, 108, 25, 0.85);
border-radius: 10%;
}
.header-link > a > img {
display: block;
width: 100%;
height: 80%;
}
.header-link:hover {
background-color: #1e9cd7;
box-shadow:0 0 10px rgba(0, 0, 0, 0.7);
-ms-transition: all .25s linear;
-moz-transition: all .25s linear;
-webkit-transition: all .25s linear;
-o-transition: all .25s linear;
}
答案 0 :(得分:7)
您无法从普通框阴影转换为插入框阴影。
幸运的是,您可以设置多个框阴影,这样就可以编写
.header-link {
box-shadow:0 0 10px rgba(0, 0, 0, 0.7) inset, 0px 0px 0px white;
}
和
.header-link:hover {
box-shadow: 0px 0px 0px white inset, 0 0 10px rgba(0, 0, 0, 0.7);
}
请注意,这些阴影与您拥有的阴影相同,因为额外的阴影具有0px,因此不会显示。另请注意,顺序很重要:只有第一个阴影插入(或正常)时,浏览器才会转换它,第二个阴影插入(或正常),依此类推
我已经删除了悬停状态下的转换,您不需要重复它们。