繁体   English   中英

CSS3 Moon Eclipse形状

[英]CSS3 Moon Eclipse shape

如何在CSS3中创建以下形状,而不使用像“:before”这样的伪类?

蚀刻形状

我之前做过很简单,但事情是我不想在灰色区域有一个坚实的元素(参见JSFiddle - http://jsfiddle.net/aUdLr/2/

div{
    width: 100px;
    height: 100px;
    background-color: red;
    border-radius: 100%;
    position: relative;
}
div:before{
    content: "";
    width: 100%;
    height: 110%;
    background: gray;
    position: absolute;
    left: 5px;
    top: -5%;
    border-radius: 100%;
}

您可以使用边框宽度:

div{
    width: 100px;
    height: 100px;
    border-radius: 100%;
    border-width: 0;
    border-left:solid 10px red;
}

科学上不准确的例子: http//jsfiddle.net/aUdLr/4/

请记住,外形不是一个完美的圆形,因为边框被添加到宽度。 您可以通过减小宽度或使用Box-sizing: Border-box来进行补偿。

要获得由较大圆圈黯然失色的小圆圈的效果,可以向透明元素添加阴影:

div{
    width: 100px;
    height: 100px;
    border-radius: 100%;
    background-color:transparent;
    box-shadow: -23px 0 0px -15px #ff8;
}

示例: http//jsfiddle.net/aUdLr/6/

我想到的最简单的CSS3解决方案:

div:before {
    font: 80px serif;
    color: red;
    content: "(";
}

这是一个小提琴。

(现在认真 - 如果你想对形状进行大量控制,我建议使用SVG。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM