2012-05-02 37 views
0

我试图让3D色带盒CSS3,但得到的一些问题,使3D色带盒我怎样才能让这个纯CSS 用最少的代码。如何创建CSS

这里是我试图使图像.....

enter image description here

感谢

回答

7

这里有一个办法做到这一点,相当小的标记。 :before:after伪元素需要IE 8+,如果你需要支持较低的(IE6/7),你可以使用两个额外的<div>元素为三角形的角落。

example jsfiddle

HTML:

<div id="box"> 
    <div id="ribbon">3d Text and rounded corner sample</div> 
</div>​ 

CSS:

#box { 
    position:relative; 
    background:gray; 
    width:400px; 
    height:300px; 
    margin:20px 45px; 
} 
#ribbon { 
    position:absolute; 
    top:15px; 
    left:-20px; 
    width:360px; 
    height:55px; 
    background:#ff2702; 
    color:white; 
    padding:20px 40px; 
    font-size:24px; 
    font-weight:bold; 
    border-radius:5px 5px 0 0; 
    box-shadow:0 0 8px #333; 
    text-shadow:0 0 8px #000; 
} 
#ribbon:before { 
    content:''; 
    position:absolute; 
    bottom:-20px; 
    left:0; 
    border-top:solid 10px #ff2702; 
    border-right:solid 10px #ff2702; 
    border-bottom:solid 10px transparent; 
    border-left:solid 10px transparent; 
} 
#ribbon:after { 
    content:''; 
    position:absolute; 
    bottom:-20px; 
    right:0; 
    border-top:solid 10px #ff2702; 
    border-right:solid 10px transparent; 
    border-bottom:solid 10px transparent; 
    border-left:solid 10px #ff2702; 
} 
​ 
+0

哎@mdmullix您anwser是正确的,但你这就是定义的所有四个边框属性为什么在你的箭头边境差一些检查我如何我做了http://jsfiddle.net/EKs3a/30/并将其与你的答案进行比较,你会知道我在说什么反正谢谢你的回答.... –

+0

嗨,mdmullinax,我怎样才能让角落圆而不是平的?你能重新编码那个圆角的小提琴吗?谢谢 – jeewan

+1

@soflover尝试'#box {border-radius:5px}' – MikeM