是否可以有一个带有黑色边框的普通 div,但是对于较新的浏览器使用 SVG 添加各种阴影效果?
即,对于旧浏览器,边框会显示,但对于较新的浏览器,您可能会有一个阴影,使 div 看起来像是一张被抬起的纸。
编辑:图像样本
实际上,我在以下链接中使用 Craig Buckler 的方法设法解决了这个问题: http ://www.sitepoint.com/pure-css3-paper-curls/
这种方法基本上使用 :before 和 :after 位于 div 后面的伪类。他们确实使用了盒子阴影效果和变换。
这是我的 HTML:
<div class="note">
<div class="note-shadow-top">
<div class="note-shadow-bottom">
<div class="note-content">
<asp:Literal ID="ContentLiteral" Text="Content" runat="server" />
</div>
</div>
</div>
</div>
这是CSS:
.note
{
}
.note-content
{
padding: 20px;
}
.note p:last-child
{
margin-bottom: 0;
}
.note-shadow-top
{
position: relative;
margin: 20px auto;
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.07);
}
.note-shadow-top:before, .note-shadow-top:after
{
position: absolute;
width: 40%;
height: 40%;
content: ' ';
left: 4px;
top: 11px;
background: transparent;
-webkit-transform: skew(5deg) rotate(1deg);
-moz-transform: skew(5deg) rotate(1deg);
-ms-transform: skew(5deg) rotate(1deg);
-o-transform: skew(5deg) rotate(1deg);
transform: skew(5deg) rotate(1deg);
-webkit-box-shadow: -4px 0 9px rgba(0, 0, 0, 0.3);
-moz-box-shadow: -4px 0 9px rgba(0, 0, 0, 0.3);
box-shadow: -4px 0 9px rgba(0, 0, 0, 0.3);
z-index: -1;
}
.note-shadow-top:after
{
left: auto;
right: 4px;
-webkit-transform: skew(-5deg) rotate(1deg);
-moz-transform: skew(-5deg) rotate(1deg);
-ms-transform: skew(-5deg) rotate(1deg);
-o-transform: skew(-5deg) rotate(1deg);
transform: skew(-5deg) rotate(1deg);
-webkit-box-shadow: 4px 0 9px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 4px 0 9px rgba(0, 0, 0, 0.3);
box-shadow: 4px 0 9px rgba(0, 0, 0, 0.3);
}
.note-shadow-bottom
{
position: relative;
margin: 0 auto;
}
.note-shadow-bottom:before, .note-shadow-bottom:after
{
position: absolute;
width: 40%;
height: 10px;
content: ' ';
left: 0;
bottom: 8px;
background: transparent;
-webkit-transform: skew(-5deg) rotate(-7deg);
-moz-transform: skew(-5deg) rotate(-7deg);
-ms-transform: skew(-5deg) rotate(-7deg);
-o-transform: skew(-5deg) rotate(-7deg);
transform: skew(-5deg) rotate(-7deg);
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
z-index: -1;
}
.note-shadow-bottom:after
{
left: auto;
right: 1px;
-webkit-transform: skew(5deg) rotate(5deg);
-moz-transform: skew(5deg) rotate(5deg);
-ms-transform: skew(5deg) rotate(5deg);
-o-transform: skew(5deg) rotate(5deg);
transform: skew(5deg) rotate(5deg);
}
.ie8 .note-shadow-top, .ie7 .note-shadow-top
{
border: 1px solid #EBEBEB;
}
希望这可以帮助别人。
阴影效果可以通过css3box-shadow
属性来实现。可以在此处找到一些示例,并且该站点允许交互式生成 CSS 子句并立即预览(也包括其他 css 效果)。
示例文件:
<!DOCTYPE html>
<html>
<head>
<title>css3 box shadow demo</title>
</head>
<body>
<div style="width:500px; height:100px; -moz-box-shadow: 10px 10px 5px #888; -webkit-box-shadow: 10px 10px 5px #888; box-shadow: 10px 10px 5px #888;">no content</div>
</body>
</html>