Как дать овальную форму div?
Я много пробовал овальную форму, которая разрезалась с обеих сторон, но не могла это сделать
Мне нужен код для овальной формы с разрезом в обе стороны.
Здесь мой код ниже: -
.demo{
width: 100%;
height: 600px;
background: white;
-moz-border-radius: 100px / 50px;
-webkit-border-radius: 100px / 178px;
border-radius: 694px / 208px;
z-index: 100;
position: relative;
}
+11
5 ответов
Это нормально?
HTML
<div id="oval_parent">
<div id="oval"></div>
</div>
CSS
#oval_parent{
background:black;
width:200px;
height:120px;
overflow:hidden;
}
#oval{
width: 220px;
height: 100px;
margin:10px 0 0 -10px;
background: white;
-moz-border-radius: 100px / 50px;
-webkit-border-radius: 100px / 50px;
border-radius: 100px / 50px;
}
DEMO.
+16
Попробуйте следующее:
#oval-shape {
width: 200px;
height: 100px;
background: blue;
-moz-border-radius: 100px / 50px;
-webkit-border-radius: 100px / 50px;
border-radius: 100px / 50px;
}
Обратите внимание на отношения в значениях угла по отношению к высоте.
Демо - http://jsfiddle.net/XDLVx/
+3
Измените значения на css:
#demo {
width: 100%;
height: 600px;
background: white;
-moz-border-radius: 50% / 250px;
-webkit-border-radius: 40% / 250px;
border-radius: 50% / 250px;
z-index: 100;
position: relative;
}
+1
Поместите его в другой div, который достаточно высок, чтобы показать весь овал, не достаточно широкий, и установить переполнение: скрыто. Если он расположен в центре, края будут обрезаны, но вы не сможете прокручивать по бокам.
0
Вот два возможных варианта:
Метод # 01:
Используйте radial-gradient()
:
background: radial-gradient(ellipse 65% 40%, transparent 0, transparent 90%, black 90%);
body {
background: linear-gradient(orange, red);
padding: 0 20px;
margin: 0;
}
.oval {
background: radial-gradient(ellipse 65% 40%, transparent 0, transparent 90%, black 90%);
height: 100vh;
}
<div class="oval">
</div>
Метод # 02:
- Создайте наложение с псевдонимом
:before
или:after
. - Добавить
border-radius
. - Примените большой
box-shadow
сoverflow: hidden
к родительскому, чтобы скрыть нежелательную область.
body {
background: linear-gradient(orange, red);
padding: 0 20px;
margin: 0;
}
.oval {
position: relative;
overflow: hidden;
height: 100vh;
}
.oval:before {
box-shadow: 0 0 0 500px #000;
border-radius: 100%;
position: absolute;
content: '';
right: -10%;
left: -10%;
top: 10%;
bottom: 10%;
}
<div class="oval">
</div>
0
Посмотрите другие вопросы по меткам css css3 css-shapes или Задайте вопрос