我的网站上有几个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; }您无法从普通框阴影过渡到插入框阴影.
幸运的是,你可以设置多个盒子阴影,这样你就可以写了
.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,因此不会显示.另请注意,顺序很重要:浏览器只有在第一个阴影插入(或正常)时才转换它,第二个阴影插入(或正常)两者,依此类推
fiddle
我已经删除了悬停状态中的转换,您不需要重复它们.