基本的には、六角形を作成しようとしています。六角形の中に円があり、円の余分な部分が隠されているはずです。 デモ:https://codepen.io/AskSaikatSinha/pen/jwXNPJ?editors=1100オーバーフロー:隠し属性が擬似クラスの前後に作用しない
マイHTML:
<div class="container">
<div class="radius-rect"></div>
<div class="hex">
<div id="hexagon" >
<div class="semi-cir" ></div>
</div>
</div>
</div>
マイCSS:
#hexagon {
width: 100px;
height: 55px;
background: #0088CD;
position: absolute;
border-top: 1px solid #0088CD;
border-bottom: 1px solid #0088CD;
border-radius: 2px;
}
#hexagon:before {
content: "";
position: absolute;
top: -25px;
left: 0;
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 25px solid #0088CD;
border-radius: 2px;
}
#hexagon:after {
content: "";
position: absolute;
bottom: -25px;
left: 0;
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 25px solid #0088CD;
border-radius: 2px;
}
.semi-cir{
position: relative;
left: 10px;
background-color:#00A9F1;
height:100px;
width:100px;
-webkit-border-radius:75px;
-moz-border-radius:75px;
z-index: 1;
overflow: hidden;
}
オーバーフロー:隠された任意の効果を持っていません。
: 同じトリックは、あなたが提供するリンク上で適用されますオーバーフローを追加すると、#hexagonに隠された:afterと:beforeの擬似クラスもクリッピングされます。 –
これは予想される動作です:親のすべてのコンテンツが隠され、擬似_elements_が含まれています。再現しようとしているロゴの場合は、円をいくつかの部分に作成するか、 'clip-path'を使う必要があります。 – ncoden