是否可以仅使用 CSS 执行此操作?我想了很久,但什么都没想到
问问题
432 次
3 回答
3
是的,但前提是您的背景为纯色:
div {
width: 310px;
height: 41px;
background: gray;
border-radius: 5px;
position: relative;
}
div:after {
content: '';
display: block;
width: 60px;
height: 60px;
background: white;
border-radius: 50%;
position: absolute;
right: -30px;
bottom: -30px;
}
还要检查DEMO。
编辑:添加了内部阴影:http: //jsfiddle.net/LinkinTED/ThZrf/1/
于 2013-09-19T09:29:52.123 回答
2
是的。您可以创建一个相对定位的 div 并给它一个大数字的边界半径(您必须尝试找到它在什么点变成一个圆)为它指定宽度和高度,将它的 z-index 设置为高于它所在的东西并将其放置在底角。就像是
#circle{
border-radius: 300px;
z-index: 2;
height: 40px;
width:40px;
left: 350px;
top: 20px;
background-colour:white;
}
这些只是样本值。您需要自己的才能正确执行此操作。如果您想变得更加花哨,我认为您可以指定将半径应用于哪些角。因此,您可以(我认为)在 CSS 中创建精确的形状,而不是像我的方法那样创建一个圆形(但您可以将圆形放置在切掉角落的位置)。
编辑:正如所指出的,如果你想要一个阴影,你可以使用 css box-shadow 属性(注意这在 IE9 下不支持)。
于 2013-09-19T09:26:32.707 回答
1
在不知道您的特定用例的情况下,您可以考虑 Lea Verou 的这种技术:http: //lea.verou.me/2011/03/beveled-corners-negative-border-radius-with-css3-gradients/
于 2013-09-19T09:30:54.830 回答