【发布时间】:2015-02-13 11:50:39
【问题描述】:
我正在尝试使用具有弯曲边缘的纯 CSS 创建一个三角形。
这是否可能而不完全超出顶部?
我在下面添加了一个示例,说明我想要实现的目标(曲线 - 而不是直线)。
到目前为止,我一直在使用以下代码,但这并不是我想要的。
#inner {
transform: rotate(45deg);
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform: rotate(45deg);
-moz-transform: rotate(45deg);
background-color: silver;
width: 100px;
height: 100px;
top: 20px;
left: -50px;
position: relative;
-moz-border-radius: 20px;
border-radius: 20px;
}
#outer {
position: absolute;
width: 70px;
height: 140px;
top: 20px;
left: 50px;
overflow: hidden;
border: 1px solid red;
}
<div id="outer">
<div id="inner"> </div>
</div>
【问题讨论】:
-
并不是说它是不可能的,但是对于像这样的复杂形状,CSS 不是最好的选择。 SVG 或图像会更合适(但尝试并没有错 :))
-
@Harry 检查我的答案,这样的形状并不太难创建。你只需要知道如何:)
-
@Harry:我同意,svg 似乎很适合这个。由于某种原因,“边界半径”似乎不太正确:L
-
@Ruddy:我不是说不可能的伴侣。通过努力,更复杂的形状是可能的,但代价是什么?创建如此复杂的形状、放置它们以使它们在所有浏览器、所有缩放级别等上看起来都一样,需要付出相当多的努力,而其他方法可以相对更快地实现相同的效果。这就是我想说的。
-
@Harry 哦,我不是说你说不可能的。我只是说可以不费吹灰之力地制作形状,只需对一个相当简单的 CSS 形状进行大量调整。 SVG 会更适合这种类型的东西,是的,我同意这一点。
标签: css geometry css-shapes