纯净的CSS星形

Sas*_*wat 19 css css-shapes

CSS Tricks上显示了很多CSS形状.我对这位明星特别感到惊讶:

明星形象

下面的CSS如何创建这个形状?

#star-five {
  margin: 50px 0;
  position: relative;
  display: block;
  color: red;
  width: 0px;
  height: 0px;
  border-right: 100px solid transparent;
  border-bottom: 70px solid red;
  border-left: 100px solid transparent;
  transform: rotate(35deg);
}
#star-five:before {
  border-bottom: 80px solid red;
  border-left: 30px solid transparent;
  border-right: 30px solid transparent;
  position: absolute;
  height: 0;
  width: 0;
  top: -45px;
  left: -65px;
  display: block;
  content: '';
  transform: rotate(-35deg);
}
#star-five:after {
  position: absolute;
  display: block;
  color: red;
  top: 3px;
  left: -105px;
  width: 0px;
  height: 0px;
  border-right: 100px solid transparent;
  border-bottom: 70px solid red;
  border-left: 100px solid transparent;
  transform: rotate(-70deg);
  content: '';
}
Run Code Online (Sandbox Code Playgroud)
<div id="star-five"></div>
Run Code Online (Sandbox Code Playgroud)

mis*_*Sam 48

让我们分成几块:

黄色边框实际上设置为transparent最终产品,因此它们不显示.它们在这里是黄色的,以显示边框的外观.

如上所述,这个答案显示了基本三角形形状背后的想法.

div本身:

<div id="star-five"></div>
Run Code Online (Sandbox Code Playgroud)

一件

组合:before伪元素与此相同:

<div id="star-five">
    <div id="before"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

第二部分

最后,组合:after伪元素与此相同:

<div id="star-five">
    <div id="before"></div>

    <div id="after"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

第三件

现在,您position: absolute;可以transform根据需要精确地使用和旋转每个元素以获得最终产品:

最终产品

让我们想象吧!

动画

  • +1非常好的演示文稿. (13认同)