Подтвердить что ты не робот

Объясните использование CSS3 в форме яйца

Я использую CSS3 для создания случайных фигур. Я застрял на этой форме яйца. Я проверил математику Egg Shapes, которые состоят из двух кругов с различным радиусом. Тем не менее, я не могу связать эту фундаментальную конструкцию с кодом CSS CSS здесь, особенно с частью "border-radius".

#egg {
display:block;
width:126px; 
/* width has to be 70% of height */
/* could use width:70%; in a square container */
height:180px;
background-color:green;

/* beware that Safari needs actual
px for border radius (bug) */
-webkit-border-radius:63px 63px 63px 63px/
108px 108px 72px 72px;
/* fails in Safari, but overwrites in Chrome */
border-radius:50% 50% 50% 50%/60% 60% 40% 40%;
 }
4b9b3361

Ответ 1

5.1. Кривые Радиусы: "свойства радиуса радиуса

Два значения длины или процента свойств" border-*-radius" определяют радиусы четвертого эллипса, определяющие форму угла внешнего края границы (см. диаграмму ниже). Первое значение - горизонтальный радиус, второй - вертикальный. Если второе значение опущено, оно копируется из первого. Если длина равна нулю, угол квадратный, а не округленный. Проценты для горизонтального радиуса относятся к ширине рамки, тогда как проценты для вертикального радиуса относятся к высоте рамки. Отрицательные значения не допускаются.

border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;

enter image description here

.egg {
    display: block;
    width: 120px;
    height: 180px;
    background-color: green;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
<div class="egg"></div>

Ответ 2

Per спецификация по радиусу границы

Если значения заданы до и после косой черты, то значения перед косой чертой устанавливают горизонтальный радиус и значения после косой черты устанавливают вертикальный радиус.

Вы создаете форму яйца с большим вертикальным радиусом вверху и меньшим вертикальным радиусом внизу.

Ответ 3

Ваш радиус границы разбит на:

border-bottom-left-radius: 50% 40%;
border-bottom-right-radius: 50% 40%;
border-top-left-radius: 50% 60%;
border-top-right-radius: 50% 60%;

Позвольте сдержать верхнюю левую сторону:

Первое значение - это горизонтальный радиус, это означает, что граница округлена до половины ширины. Второе значение - для вертикального радиуса, поэтому кривая снижается до 60% высоты элемента.