html5中的真圆(或任何非矩形)元素?

时间:2012-10-26 16:56:27

标签: html5 css3 element geometry

我没有看到任何关于它们的文档,因此它们可能不存在,但检查总是很好。

我正在寻找一个真正的圆形(或除矩形以外的任何类型的多边形)元素。我可以在画布上画一个圆圈,但画布仍然是一个矩形。我可以使用border-radius绘制一个圆,但它仍然是一个有圆角的方形元素。

我正在寻找一种(简单)方法来制作复杂的形状按钮,这些按钮在其可点击区域非常精确。

我目前的方法是使用JavaScript,听取点击次数并测量位置。如果在html5 / css3中处理它会更加理想。

3 个答案:

答案 0 :(得分:1)

嗯,所有元素都以一种形状或另一种形状的块,方形或矩形开始。除此之外,您通过CSS操纵块,以圆圈形式显示。但不言而喻,并非所有浏览器都完全支持这一点,但它主要是旧版浏览器,你必须担心这一点。

如果您正在寻找100%兼容新旧的东西,那么http://pixlr.com你可以在那里画一个并使用图片标签..但即使这样,图像仍然是正方形/矩形。真的没有逃避你去的任何路线的概念。

总而言之..

<div class="full-circle"></div>

.full-circle {
 background-color: #c06;
 border: 3px solid #333;
 height: 150px;
 border-radius:75px;
 -moz-border-radius:75px;
 -webkit-border-radius: 75px;
 width: 150px;
}

就你目前的方法而言,大多数情况下这是唯一合理的逻辑,做“规范”以外的事情通常需要更多的工作,然后需要一行代码或三代才能为你完成。

答案 1 :(得分:1)

Border-radius只是使元素看起来很圆(据报道,在firefox中除外)。

映射一些工作,但我想避免强制图像。

SVG有效,但它仍然不是纯粹的html / css,因为链接工作需要javascript。 SVG元素仍然是正方形,但内部形状是对javascript事件反应良好的元素。所以它不是100%完美,但它是可行的。

如果我们能够控制页面上元素的形状而不是在画布内绘制,那肯定会更酷。也许我会在画布里面建立一个完整的网站......

感谢您的建议!

答案 2 :(得分:0)

没有真正的圆形元素,但尝试使用常规的box元素并使用CSS3规范border-radius。例如:

border-radius: 50px;
height: 50px;
width: 50px;
overflow: hidden;

这会创建一个有效圆形的元素,并且当悬停在元素上时,Firebug会尊重弯曲形状。