CSS3で3Dリボンボックスを作成しようとしていますが、いくつかの問題が発生しているので、最小限のコードで純粋なCSSを使用してこれを作成するにはどうすればよいですか。
これが私が作ろうとしている画像です.....
ありがとう
これを行う1つの方法、かなり最小限のマークアップです。 :before
疑似要素に:after
はIE8+が必要です。より低い(IE6 / 7)をサポートする必要がある場合は<div>
、三角形の角に2つの追加要素を使用できます。
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;
}