それは実際に簡単です。あなただけの::before
Sを使用したいと::after
のそれの純粋なCSS作ることは非常に難しいタスクをだ
* {
box-sizing: border-box;
}
body {
background-color: #09f;
}
nav {
width:200px;
height:80px;
position:relative;
margin:50px;
}
nav > .nav-container {
width:100%;
height:80px;
background-color:#CCEBFF;
position:relative;
z-index:2;
border-radius: 15px 15px 0 0;
}
nav > .nav-container > div {
position:absolute;
top:32px;
width:100%;
height:36px;
background-color: #fff;
padding:10px;
}
nav::before,
nav::after{
content: " ";
position:absolute;
border-radius:15px;
}
nav::before {
top:0px;
left:-22px;
width:44px;
height:68px;
background-color:#fff;
}
nav::after {
top:2px;
left:-20px;
width:40px;
height:30px;
background: #dddddd;
background: -moz-linear-gradient(top, #dddddd 0%, #999999 100%);
background: -webkit-linear-gradient(top, #dddddd 0%,#999999 100%);
background: linear-gradient(to bottom, #dddddd 0%,#999999 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#dddddd', endColorstr='#999999',GradientType=0);
}
<nav>
<div class="nav-container">
<div>
All your items
</div>
</div>
</nav>
を。最も多分なことは、少なくともあなたはあまり広すぎる答えを得ることができないということです。一般的な方法は、CSSを使用すると形状が非常に複雑であるため、画像を使用する方法です。 –
CSS以外の方法で作成する方法はありますか? – nil338
私は元の例が狂っているので、イメージであなたに伝えます。 –