0

CSS3で3Dリボンボックスを作成しようとしていますが、いくつかの問題が発生しているので、最小限のコードで純粋なCSSを使用してこれを作成するにはどうすればよいですか。

これが私が作ろうとしている画像です.....

ここに画像の説明を入力してください

ありがとう

4

1 に答える 1

7

これを行う1つの方法、かなり最小限のマークアップです。 :before疑似要素に:afterはIE8+が必要です。より低い(IE6 / 7)をサポートする必要がある場合は<div>、三角形の角に2つの追加要素を使用できます。

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;
}
​
于 2012-05-02T07:31:53.990 に答える