2017-02-26 26 views
0

我正嘗試用div創建半圓形狀。div:製作半圓形光盤

這是我試過的。

div { 
 
    width: 100px; 
 
    height: 50px; 
 
    background: gray; 
 
    border-top-right-radius:100%; 
 
    border-top-left-radius:100%; 
 
}
<div> 
 
</div>

我也曾嘗試是徒勞的50%100%,其他所有組合。

我認爲它可以做到border-radius及其變種的一些組合,但我無法弄清楚。

P.S.另外,讓我知道,如果這種方法是不可能的,以及如何做到這一點。

回答

1

通過使用元素寬度/高度的百分比計算border-radius,所以除非瀏覽器窗口完全呈正方形,否則邊框會更加橢圓,而不是圓形。這裏是我的建議:

div { 
 
    width: 100px; 
 
    height: 50px; 
 
    overflow: hidden; 
 
} 
 

 
div div { 
 
    width: 100px; 
 
    height: 100px; 
 
    background: gray; 
 
    border-radius: 50%; 
 
}
<div> 
 
    <div> 
 
    </div> 
 
</div>

使用一個唯一格設置(如需要):

div { 
 
    background: grey; 
 
    width: 100px; 
 
    height: 50px; 
 
    border-top-left-radius: 100px; 
 
    border-top-right-radius: 100px; 
 
}
<div></div>

還有一個解決方案(使用僞元素):

(使用一個DIV)

div { 
 
    width: 100px; 
 
    height: 50px; 
 
    overflow: hidden; 
 
} 
 

 
div::before { 
 
    content: ''; 
 
    display: block; 
 
    width: 100px; 
 
    height: 100px; 
 
    background: gray; 
 
    border-radius: 50%; 
 
}
<div></div>

還有一個解決辦法:

div { 
 
    width: 100px; 
 
    height: 50px; 
 
    background: gray; 
 
    border-radius: 50% 50% 0 0/100% 100% 0 0; 
 
}
<div></div>

+0

那是滑頭! +1 :)只能使用一個div完成嗎? – frederick99

+0

另外,它不應該是'border-radius:50%'嗎? ......但似乎這兩種方式都有效。 – frederick99

+0

是的,看起來50%完美。請參閱「one div」解決方案的更新版本。訣竅是以像素爲單位硬編碼邊界半徑,因爲我說%將使用容器尺寸。 – Mike