我左边有一个固定的100%高度菜单,我需要在它的右侧创建一个阴影效果,在此之后会消失。
见图解说明这一点。
如何创建此效果?
这是一个小提琴:http://jsfiddle.net/52VtD/7787/
HTML:
<nav id="main-menu">
<h1>Hello</h1>
<a href="#">A</a>
<a href="#">B</a>
<a href="#">C</a>
<a href="#">D</a>
</nav>
CSS:
#main-menu {
width: 320px;
height: 100%;
top: 0;
z-index: 1000;
position: fixed;
background-color: #b4bac1;
}
答案 0 :(得分:9)
您可以使用CSS3实现此目的:box-shadow
和transform
。
在下面的示例中,box-shadow
应用于.menuContainer
的伪元素,该元素位于.menu
元素下方,并使用CSS3 1°
旋转rotate()
转换属性。
html,body { /* This is only here to allow the menu to stretch to 100% */
height: 100%;
margin: 0;
}
.menuContainer {
position: relative;
height: 100%;
width: 100px;
}
.menuContainer::after {
content: "";
position: absolute;
z-index: 1;
top: -10px;
bottom: 0;
left: -7px;
background: rgba(0,0,0,0.3);
box-shadow: 10px 0 10px 0 rgba(0,0,0,0.3);
width: 100px;
transform: rotate(1deg);
}
.menu {
background: #f00;
height: 100%;
width: 100px;
position: relative;
z-index: 2;
}
&#13;
<div class="menuContainer">
<div class="menu"></div>
</div>
&#13;
答案 1 :(得分:1)
您可以使用伪元素伪造它而不是使用框阴影,如下所示
<强> CSS 强>
#main-menu {
width: 50px;
height: 100%;
top: 0;
z-index: 1000;
position: fixed;
background-color: pink;
}
#main-menu:after {
content:"";
position: absolute;
top:0;
left:100%;
height:100%;
width:5%;
background: linear-gradient(to bottom, rgba(0,0,0,0.15) 0%,rgba(0,0,0,0) 100%);
}