it-swarm.com.ru

Полуовальный с CSS

Я пытаюсь создать микс между овалом и полукругом. 

Полукруги могут быть созданы как таковые в 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;
}

И овалы можно сделать так:

.oval { 
    background-color: #80C5A0;
    width: 400px;
    height: 200px;
    margin: 100px auto 0px;
    border-radius: 200px / 100px;
}

Но как я могу сделать полуовал? Вот моя попытка до сих пор. Проблема в том, что у меня есть плоские вершины, найденные здесь . Спасибо!

10
Nick Bull

Я обновил вашу демо одним возможным решением: 

div {
  background-color: #80C5A0;
  width: 400px;
  height: 100px;
  border-radius: 50% / 100%;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
<div></div>

Используя единицы измерения в процентах для border-radius, он всегда должен сохранять плавный полуэллипс независимо от значений width и height.

С некоторыми незначительными изменениями, вот как вы бы сделали полуэллипс разделенным пополам по вертикали:

div {
  background-color: #80C5A0;
  width: 400px;
  height: 100px;
  border-radius: 100% / 50%;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
<div></div>

23
André Dion

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;
}
5
yunzen

Мы также можем использовать css3 radial-gradient() , чтобы нарисовать эту фигуру:

.halfOval {
  background: radial-gradient(ellipse at 50% 100%, #a0C580 70%, transparent 70%);
}

.halfOval {
  background: radial-gradient(ellipse at 50% 100%, #a0C580 70%, transparent 70%);
  margin: 50px auto;
  height: 100px;
  width: 400px;
}
<div class="halfOval"></div>

0
Mohammad Usman