如何使用CSS创建以下形状?
我试着把它作为一个解决方案:
.triangle:after {
position:absolute;
content:"";
width: 0;
height: 0;
margin-top:1px;
margin-left:2px;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-bottom: 10px solid white;
}
.triangle:before {
position:absolute;
content:"";
width: 0;
height: 0;
border-left: 12px solid transparent;
border-right: 12px solid transparent;
border-bottom: 12px solid black;
}
你可以看到它在 Triangle 下工作。这是有效的,但有一个边界的技巧。有没有别的办法?
使用SVG矢量可以很容易地做到这一点,但我不想走那么长的路。
9条答案
按热度按时间zc0qhyus1#
我找到了一个仅**webkit**的解决方案,使用▲字符:
额外费用:
text-stroke
的CanIUse reference-截至2019年涵盖所有主要浏览器6yjfywim2#
CSS边框版本:
在黑色三角形内添加一个白色三角形:http://jsfiddle.net/samliew/Hcfsx/
ocebsuys3#
除了下面使用渐变的答案外,我还有一个多边形形状的在线生成器,您可以在其中获得仅边界的三角形:https://css-generators.com/polygon-shape/
下面是一个使用多个背景和
linear-gradient
的想法:您可以考虑CSS变量来轻松调整形状:
一个不同的语法,渐变更少:
你可以考虑同样的想法来创建一个矩形三角形:
如果你想要一个等边三角形,只需使用初始代码保持宽度/高度的比例即可
有关计算的更多详细信息的相关答案:How do CSS triangles work?
e1xvtsh34#
尝试使用
SVG
这里是**tutorial**
zf9nrax15#
你可以使用我在这里描述的方法:这个CSS三角形是如何工作的?一个旋转的伪元素。然后,可以向旋转的伪元素添加边框,以创建所需的效果。
您也可以使用此技术显示三角形,其边界覆盖图像、渐变或任何非平面背景:
DEMO
l3zydbqr6#
考虑使用
<canvas>
元素。我在jsfiddle上构建了一个简单的三角形-还没有什么花哨的。flmtquvp7#
这将是一个指向顶部的三角形。不要将边框指定到需要指向的一侧。
上面是一个等边三角形。删除
border-left
使其成为直角三角形。au9on6nz8#
clip-path
也可以考虑:要帮助您创建
clip-path
,您可以使用此在线工具https://bennettfeely.com/clippy/z6psavjg9#
我找到了一个很好的解决方案,有点棘手,但对我来说,这是最简单的方法:link to code-pen
}