我在椭圆形状上做了很多尝试,但两侧都有切割但不能做到
我需要椭圆形的代码,两侧都有切口..
以下是我的代码: -
.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;
}
答案 0 :(得分:18)
这样可以吗?
<强> 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;
}
答案 1 :(得分:3)
试试这个:
#oval-shape {
width: 200px;
height: 100px;
background: blue;
-moz-border-radius: 100px / 50px;
-webkit-border-radius: 100px / 50px;
border-radius: 100px / 50px;
}
注意角落值与高度的比率。
答案 2 :(得分:1)
更改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;
}
答案 3 :(得分:0)
把它放在另一个高度足以显示所有椭圆形的div中,不够宽,并设置溢出:隐藏。如果它位于中心,边缘将被切除,但您将无法侧滚动。
答案 4 :(得分:0)
以下是两种可能的变体:
方法#01:
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>