2012-05-11 9 views

答えて

5

はい、余分なマークアップなしでこれを行うことができます。このように書く:

CSS

.active{ 
    border:1px solid red; 
    border-bottom:0; 
    width:80px; 
    height:40px; 
    margin:30px; 
    position:relative; 
    -moz-border-radius:5px 5px 0 0; 
    -webkit-border-radius:5px 5px 0 0; 
    border-radius: 5px 5px 0 0; 
} 
.active:after, 
.active:before{ 
    content:''; 
    width:40px; 
    height:30px; 
    border:1px solid red; 
    position:absolute; 
    bottom:-3px; 
    border-top:0; 
} 
.active:after{ 
    border-left:0; 
    -moz-border-radius:0 0 5px 0; 
    -webkit-border-radius:0 0 5px 0; 
    border-radius: 0 0 5px 0; 
    left:-41px; 
} 
.active:before{ 
    border-right:0; 
    -moz-border-radius:0 0 0 5px; 
    -webkit-border-radius:0 0 0 5px; 
    border-radius: 0 0 0 5px; 
    right:-41px; 
} 

HTML

<div class="active">hi</div> 

チェックグラフィックの部分が外側にあるので、これは追加のマークアップなしで行うことはできません。このhttp://jsfiddle.net/p6sGJ/

+0

"本当の" border-radius'プロパティを追加するのを忘れました。私たちはこの狂気をこれ以上は望んでいません:http://remysharp.com/2012/02/09/vendor-prefixes-about-to-go-south/ – peirix

+0

それは素晴らしいですが、ちょうど私がサポートする例を与える - ウェブキット&mozillaのブラウザ:) – sandeep

+1

ええ、問題はおそらく誰かがあなたのコードをコピーして貼り付けることになります、そして、それはおそらく問題が最初にどのように始まったかでしょう。だからちょうどあなたの答えをすばやく編集しました。これは良い解決策ですが、できるだけ避けようとしています。 – peirix

関連する問題