代码:
<html>
<head>
<title>尖角div</title>
<style type="text/css">
#top
{
width:400px
height:250px
border:3px solid /* 边框宽度为3px */
position:relative
}
.sp1,.sp2
{
display:block
height:0px
width:0px
position:absolute
font-size:0
line-height:0
}
.sp1
{
top:-9px /* 它的绝对值加上span的边框宽度等于div边框宽度的5倍 */
left:40px /* 它来确定尖角的位置 */
border-top:0px
border-bottom:6px solid black /* 注意颜色的变化 */
border-right:6px solid white
border-left:6px solid white
}
.sp2
{
top:6px /* 是自身边框宽度的2倍 */
left:-3px/* 是自身边框宽度的-1倍 */
border-top:0px
border-bottom:3px solid white
border-right:3px solid black
border-left:3px solid black
}
</style>
</head>
<body>
<div id="top">
<span class="sp1">
<span class="sp2"></span>
</span>
</div>
</body>
</html>
尖角在下面
代码:
<html>
<head>
<title>尖角div</title>
<style type="text/css">
#bottom
{
width:400px
height:250px
border:3px solid /* 边框宽度为3px */
position:relative
}
.sp1,.sp2
{
display:block
height:0px
width:0px
position:absolute
font-size:0
line-height:0
}
.sp1
{
bottom:-9px /* 它的绝对值加上span的边框宽度等于div边框宽度的5倍 */
left:40px /* 它来确定尖角的位置 */
border-bottom:0px
border-top:6px solid black /* 注意颜色的变化 */
border-right:6px solid white
border-left:6px solid white
}
.sp2
{
bottom:6px /* 是自身边框宽度的2倍 */
left:-3px/* 是自身边框宽度的-1倍 */
border-bottom:0px
border-top:3px solid white
border-right:3px solid black
border-left:3px solid black
}
</style>
</head>
<body>
<div id="bottom">
<span class="sp1">
<span class="sp2"></span>
</span>
</div>
</body>
</html>
尖角在左边
代码:
<html>
<head>
<title>尖角div</title>
<style type="text/css">
#left
{
width:400px
height:250px
border:3px solid /* 边框宽度为3px */
position:relative
}
.sp1,.sp2
{
display:block
height:0px
width:0px
position:absolute
font-size:0
line-height:0
}
.sp1
{
left:-9px /* 它的绝对值加上span的边框宽度等于div边框宽度的5倍 */
top:40px /* 它来确定尖角的位置 */
border-left:0px
border-top:6px solid white /* 注意颜色的变化 */
border-right:6px solid black
border-bottom:6px solid white
}
.sp2
{
left:6px /* 是自身边框宽度的2倍 */
top:-3px/* 是自身边框宽度的-1倍 */
border-left:0px
border-top:3px solid black
border-right:3px solid white
border-bottom:3px solid black
}
</style>
</head>
<body>
<div id="left">
<span class="sp1">
<span class="sp2"></span>
</span>
</div>
</body>
</html>
尖角在右边
代码:
<html>
<head>
<title>尖角div</title>
<style type="text/css">
#right
{
width:400px
height:250px
border:3px solid /* 边框宽度为3px */
position:relative
}
.sp1,.sp2
{
display:block
height:0px
width:0px
position:absolute
font-size:0
line-height:0
}
.sp1
{
right:-9px /* 它的绝对值加上span的边框宽度等于div边框宽度的5倍 */
top:40px /* 它来确定尖角的位置 */
border-right:0px
border-top:6px solid white /* 注意颜色的变化 */
border-bottom:6px solid white
border-left:6px solid black
}
.sp2
{
right:6px /* 是自身边框宽度的2倍 */
top:-3px/* 是自身边框宽度的-1倍 */
border-right:0px
border-top:3px solid black
border-bottom:3px solid black
border-left:3px solid white
}
</style>
</head>
<body>
<div id="right">
<span class="sp1">
<span class="sp2"></span>
</span>
</div>
</body>
</html>
理论上也是可以的,做两个“钩子”,如下CSS代码:
<style type="text/css">
.aa{ position:relativetop:-40pxwidth:0pxheight:0pxborder:20px solid rgba(0,0,0,0) border-left:20px solid #000overflow:hidden}
.bb{ position:relativeleft:10pxwidth:0pxheight:0pxborder:20px solid red border-left:20px solid #fffoverflow:hidden}
</style>
HTML代码
<div class="bb"></div>
<div class="aa"></div>
这个在火狐里是正常的。但是也有其他问题,比如rgba的颜色代码不是所有浏览器都支持的
CSS3中都只有圆角处理。这个目前只能用图片,而且用CSS3处理出来的(圆角和文字阴影)都有很多浏览器不兼容(主要是IE6)兄弟,你还是用图片处理吧。这个是这类特殊形状的唯一处理方式。如果是考虑刷新速度的话,你应该充图片的切割,以及JS运行效率上更多的考虑些。