带有CSS的半椭圆形

Nic*_*ull 11 html css css-shapes

我正在尝试在椭圆和半圆之间创建混合.

半圆可以在CSS中创建:

.halfCircle{
     height:45px;
     width:90px;
     border-radius: 90px 90px 0 0;
     -moz-border-radius: 90px 90px 0 0;
     -webkit-border-radius: 90px 90px 0 0;
     background:green;
}
Run Code Online (Sandbox Code Playgroud)

椭圆形可以像这样制作:

.oval { 
    background-color: #80C5A0;
    width: 400px;
    height: 200px;
    margin: 100px auto 0px;
    border-radius: 200px / 100px;
}
Run Code Online (Sandbox Code Playgroud)

但我怎样才能做出半椭圆形呢?到目前为止,这是我的尝试.发生的问题是我有平顶,在这里找到.谢谢!

And*_*ion 25

我已经使用一种可能的解决方案更新了您的演示:

div {
  background-color: #80C5A0;
  width: 400px;
  height: 100px;
  border-radius: 50% / 100%;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)

通过使用基于百分比的单位,border-radius它应始终保持平滑的半椭圆,无论您widthheight值如何.

通过一些小的改动,这里是你如何将半椭圆分割成垂直的一半:

div {
  background-color: #80C5A0;
  width: 400px;
  height: 100px;
  border-radius: 100% / 50%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)


yun*_*zen 5

http://jsfiddle.net/QGtzW/4/

.halfOval { 
    background-color: #a0C580;
    width: 400px;
    height: 100px;
    margin: 100px auto 0px;

    /* top-right top-left bottom-left bottom-right */
    /* or from 10.30 clockwise */
    border-radius: 50% 50% 0 0/ 100% 100% 0 0;
}
Run Code Online (Sandbox Code Playgroud)