我正在尝试在 CSS 中重现“闪电侠(DC 漫画)”中的闪电符号(或“生活大爆炸”中 Sheldon Cooper 穿的 T 恤上的徽章)。
该符号将像星级评定系统一样工作,但它将是一个“闪电评定系统”。
但是,由于我试图将 HTML 保持在最低限度,我希望它主要是 CSS 样式。
下面是我的代码示例:
position: relative;
margin: 0 auto;
}
.circ:hover{
background:gray;
}
.circ:hover .bolt{
background:gold;
}
.circ {
height: 50%;
width: 50%;
background: white;
border: 5px solid black;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
box-shadow:0 0 10px 2px black;
}
.bolt {
position: absolute;
top: 5%;
left: 50%;
height: 70%;
width: 30%;
background: yellow;
border: 2px solid black;
border-bottom: none;
transform: perspective(200px) skewX(-10deg) rotateX(15deg);
}
.bolt:before {
content: "";
position: absolute;
top: 90%;
left: 20%;
height: 50%;
width: 100%;
background: inherit;
border: 2px solid black;
transform: ;
}
/*
.bolt:after{
content:"";
position:absolute;
top:-40%;left:20%;
height:50%;
width:100%;
background:inherit;
transform:perspective(50px) skewX(-10deg) rotateX(45deg);
}*/
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<div class="wrap">
<div class="circ">
<div class="bolt"></div>
</div>
</div>
但我不知道如何从这里继续。
我尝试使用 property perspective,虽然我不知道到目前为止我是否已经对该属性进行了处理 - 主要是因为我对它perspective对属性的作用:before以及:after它们何时应用于父元素有点困惑。
我为此选择了 CSS,因为白色背景和闪电颜色会在点击时发生变化,还因为我知道如何使用 CSS 来实现。
我知道 SVG 可能是这里的最佳选择,但由于时间限制我无法学习 SVG,所以我宁愿使用“我知道如何使用的东西”,即 CSS。
问题翻译:Create a lightning bolt design (like The Flash) @jbutler483

这绝对
svg是一个 100% 的解决方案,但我也会提供我的弯曲 css 选项):代码笔
PS: Ba⚡⚡⚡⚡⚡inga!;)
在这里您可以找到有关 SVG 的信息:
圆形
多边形
CSS 解决方案
::before和::after带拉链的元素。drop-shadow在一个拉链容器中。答案翻译:创建闪电设计@Persijn
这是一种获取仅包含一个元素的表单的方法,外加几个伪元素和一些
background linear-gradients. 形状可以适应而不会变形。表格获取方式说明:
带有黑色边框的白色圆圈是
border-radius使用:after.添加了另一个伪元素 -
:before,它沿两个轴扭曲X并Y赋予闪电部分所需的外观。闪电实际上是通过将多个线性
渐变叠加在一起创建的。它包括 6 个渐变
图像,其中 3 个用于拉链的内部黄色部分,另外 3 个用于灰色边框。
背景图像(渐变)的大小由闪电的大小决定,并且它们中的每一个都被定位以便它们绘制与其外观相似的闪电。
拉链的中心部分实际上只有一种纯色,但仍然使用渐变渲染,因为我们无法控制背景纯色的大小。
闪电动画示例:
链接到
демо带有动画和颜色变化的全屏。答案翻译:创建闪电设计(如 The Flash) @Harry