【发布时间】:2013-04-20 07:37:26
【问题描述】:
如何使用 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 矢量可以轻松完成,但我不想走那么长的路。
【问题讨论】:
-
只有 CSS 吗?还有透明的机身?
-
说真的,SVG 是这里最合适的解决方案。是的,你可以用 CSS 实现一些非常聪明的事情,但是 SVG 是为绘制任意形状而设计的; CSS 不是。具有讽刺意味的是,您之所以低估 SVG,是因为您认为它很难,但实际上并非如此。老实说,这很容易。如果您要绘制复杂的形状,肯定 SVG 会变得复杂,但基本的三角形并不复杂;绘制三角形所需的 SVG 代码比 CSS 少,而且代码也更容易理解。
标签: html css css-shapes