我需要達到類似於this demo的效果。使用CSS限制圖形的邊框
但我在那裏使用的代碼太具體,不太乾淨。正如你所看到的,我已經使用了相當多的元素,並且還進行了一些非常具體的角度計算。
有沒有一種方法可以讓我創建這種形狀,保持響應,但以更清潔的方式? 請注意,我不想只有半圈,但我可以適應一個非常具體的角度。我的意思是這個圓或多或少都在矩形內,所以圓弧的角度會更大或更小。
CSS:
.rectangle {
background-color: white;
width:200px;
height:200px;
border:solid 1px navy;
}
.circle {
position: relative;
width: 70px; height: 70px;
border-radius: 50%;
background: white;
margin-top:calc(50% - 35px);
margin-left:calc(100% - 50px);
}
.arc {
overflow: hidden;
position: absolute;
top: -1px; right: 50%; bottom: 50%; left: -1px;
transform-origin: 100% 100%;
transform: rotate(115deg);
}
.arc:before {
box-sizing: border-box;
display: block;
border: solid 1px navy;
width: 200%; height: 200%;
border-radius: 50%;
content: '';
}
.arc2 {
overflow: hidden;
position: absolute;
top: -1px; right: 50%; bottom: 50%; left: -1px;
transform-origin: 100% 100%;
transform: rotate(155deg);
}
.arc2:before {
box-sizing: border-box;
display: block;
border: solid 1px navy;
width: 200%; height: 200%;
border-radius: 50%;
content: '';
}
HTML:
<div class='rectangle'>
<div class='circle'>
<div class='arc'></div>
<div class='arc2'></div>
</div>
</div>
注意事項:
- 我不能使用的z-index,這是我的第一個解決方案但它導致還有其他問題。
- 矩形的高度可以改變,所以我需要它的響應度,但即使容器的高度變大,圓的高度也應該保持不變
- 如果是的話,我可以使用SVG選項。
到底是什麼_意味着 「我可以適應一個非常特殊角」? –
請簡要說明,人們很可能會寫出一些答案,而不是什麼?!立即解釋你的想法。 –
相關:http:// stackoverflow。com/questions/21687326 @ can-i-make-an-irregular-div-shape-using-only-css – TylerH