Ste*_*ide 6 html css svg css3 css-shapes
我正在寻找使用CSS,SVG或Canvas创建无限符号.
我试图创建形状,但只设法创建形状的一面.我最终希望将其保留为一个元素并尽可能简单.
.infinity {
width: 100px;
height: 100px;
border-radius: 50% 50% 0 50%;
border: 5px solid black;
transform: rotate(-45deg);
}Run Code Online (Sandbox Code Playgroud)
<div class="infinity"></div>Run Code Online (Sandbox Code Playgroud)
我发现了这个问题:
但我正在考虑将其用作某种形状的图标或图像,因此希望它具有更多的形状自由度.
Ste*_*ide 26
通过使用伪元素,您可以创建形状的两侧,从而获得所需的输出.
所有浏览器都支持此解决方案.
div {
position: relative;
width: 178px;
height: 100px;
}
div:before,
div:after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 60px;
height: 60px;
border: 10px solid black;
border-radius: 50px 50px 0 50px;
transform: rotate(-45deg);
}
div:after {
left: auto;
right: 0;
border-radius: 50px 50px 50px 0;
transform: rotate(45deg);
}Run Code Online (Sandbox Code Playgroud)
<div></div>Run Code Online (Sandbox Code Playgroud)
这是一个修改版本:CSS-Tricks
如果你想要它更加匀称,对边界半径规则的一些修改确实有助于给它更多的形状.
div {
position: relative;
width: 178px;
height: 100px;
}
div:before,
div:after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 60px;
height: 60px;
border: 10px solid black;
border-radius: 80% 0 55% 50% / 55% 0 80% 50%;
transform: rotate(45deg);
}
div:after {
left: auto;
right: 0;
transform: rotate(-135deg);
}Run Code Online (Sandbox Code Playgroud)
<div></div>Run Code Online (Sandbox Code Playgroud)
SVG代表可伸缩矢量图形.Web浏览器将其视为图像,但您可以在SVG中添加文本和普通HTML元素.
所有浏览器都支持它,如下所示:CanIUse
<svg height="150" viewbox="0 50 200 200">
<path fill="none" stroke="#333333" stroke-width="5" d="M100,100
C200,0 200,200 100,100
C0,0 0,200 100,100z" />
</svg>Run Code Online (Sandbox Code Playgroud)
Canvas类似于SVG,但使用栅格(基于像素)而不是矢量来创建形状.
浏览器对Canvas的支持非常好.
var shape = document.getElementById('infinity').getContext('2d');
shape.lineWidth = 6;
shape.strokeStyle = "#333";
shape.beginPath();
shape.moveTo(100, 100);
shape.bezierCurveTo(200, 0, 200, 200, 100, 100);
shape.bezierCurveTo(0, 0, 0, 200, 100, 100);
shape.closePath();
shape.stroke();Run Code Online (Sandbox Code Playgroud)
<canvas id="infinity"></canvas>Run Code Online (Sandbox Code Playgroud)
从近似重复的答案中可以看出,这是所有HTML替代品的积累.
我只为规范添加了这个,并向用户显示HTML实体可以实现形状.
p {
font-size: 2em;
}Run Code Online (Sandbox Code Playgroud)
<p>?</p>
<p>∞</p>
<p>∞</p>
<p>∞</p>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3652 次 |
| 最近记录: |