我想要一个小切口的盒子。此框具有相同形状的叠加阴影。 以下是我对阴影和背景的尝试。
http://jsfiddle.net/roman_khrystynych/EH7mu/2/
HTML内容
<body>
<div class="box">
<div class="background"></div>
<div class="shadow"></div>
<div class="content">
Content
</div>
</div>
</body>
CSS
body{
background: #222;
}
box{
height: 135px;
width: 450px;
}
.content{
position:absolute;
margin-left: 120px;
margin-top: -120px;
}
.background{
margin-left:50px;
position:relative;
height:135px;
width:400px;
background:#fff;
}
.background:after{
position:absolute;
bottom:0px; left:-20px;
content:".";
text-indent:-999px; overflow:hidden;
display:block;
width:0px; height:0px;
border-top: 20px solid #fff;
border-left: 20px solid transparent;
}
.background:before{
position:absolute;
top:0; left:-20px;
content:"#";
text-indent:-999px; overflow:hidden;
display:block;
background:#fff;
width:20px; height:115px;
}
.shadow
{
margin-left:30px;
width:420px;
height: 135px;
margin-top: -135px;
position:absolute;
background: -moz-linear-gradient(top, rgba(181,181,181,0) 0%, rgba(163,163,163,0) 51%, rgba(145,145,145,0.36) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(181,181,181,0)), color-stop(51%,rgba(163,163,163,0)), color-stop(100%,rgba(145,145,145,0.36))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(181,181,181,0) 0%,rgba(163,163,163,0) 51%,rgba(145,145,145,0.36) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(181,181,181,0) 0%,rgba(163,163,163,0) 51%,rgba(145,145,145,0.36) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(181,181,181,0) 0%,rgba(163,163,163,0) 51%,rgba(145,145,145,0.36) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(181,181,181,0) 0%,rgba(163,163,163,0) 51%,rgba(145,145,145,0.36) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00b5b5b5', endColorstr='#5c919191',GradientType=0 ); /* IE6-9 */
}
关于如何使阴影叠加也包含相同切口的任何建议?有更简单的方法吗?
注意:分离阴影和方框的原因是为背景颜色设置jQuery动画,而叠加层保持不变。
答案 0 :(得分:2)
我不清楚你到底想要什么。 无论如何,既然没有人给你答案,我想我可以帮助你。
这个html:
<div class="clip">
<div class="inner">aaaaa</div>
</div>
如果你给这个css:
.clip {height: 173px; width: 181px; left: 85px; top: 74px;position: absolute;
overflow: hidden;
-webkit-transform: rotate(50deg);
background-color: rgba(200, 0, 0, 0.1);}
.inner {
-webkit-transform: rotate(-50deg);
background-color: blue;
height: 100px;width: 150px;left: 16px;top: 52px;position: absolute;}
您将在内部div中获得您想要的截止矩形。
外部div旋转并启用了裁剪,因此它会为您提供对角线裁剪。
然后将内部矩形定位在剪辑div内,以便仅剪切在左下角。你反转这个div,使它再次水平。
现在你可以用它做任何你想做的事情(我还没有使用任何背景或边界属性),或者在另一个内部div中,而不会失去形状。
只有警告说,定位内部div是棘手的,你是在旋转坐标中做的!
剪辑div对于演示是半透明的。