我一直在想,为什么在HTML中没有特殊的形状标签或CSS中的样式来制作形状,如三角形,圆形或多边形等。我不明白为什么这样的性质没有已经实施。他们没有想到它吗?我真的怀疑,还是他们故意拒绝提供?CSS或HTML中的形状
回答
HTML 5和CSS3可以做到这一点,一看就可以创建,作弊表已作出一切可能的形状在http://www.land-of-web.com/freebies/css3-simple-shapes-cheat-sheet.html
编辑:Utkanos是正确的,你可以创建形状,用我所做的链接,但要记住div容器会以块的形式输出。
这主要是因为盒模型概念要求块级元素是矩形的。这样做的原因是允许可预测的行为,例如,当堆叠在一起或彼此相邻时,这些元素如何相互作用。 (旁注:这适合早期的互联网,因为网站是基于垂直的,并且几乎没有视觉定义的容器 - 它是一个接一个的文本块,可能是被一张图片打断。水平堆叠的东西并不会直到后来才真正进入它。)
由于@ Cristy在评论中的链接显示,有创建更复杂形状的技巧。例如,可以通过创造性使用border-radius
来实现圈和椭圆。其他形状通过transform
属性依靠失真。
然而,重要的是要记住,这样的模拟形状将被浏览器视为具有边界BOX。这是支配一个元素与另一个元素有多近,以及它们的边缘如何相交的基本原则。
HTML和CSS都不是绘图程序。虽然可以创建这些对象,但至少在某种程度上它们是令人费解的黑客。
这是因为HTML仅仅意味着为您的文本提供语义含义。虽然浏览器确实给大多数元素提供了一些默认样式,但这仅仅是一个建议,并且默认样式因浏览器而异。因此,就HTML而言,如果他们试图实施<triangle>
标签,那么它绝对会违背所有最佳做法。而且他们确实有在WEB开始时定义样式的标签(等等)。但它已被证明是一个噩梦来维护。因此,WEB的样式元素被委托给了CSS。
现在,就CSS而言,自开始以来已经走过了很长一段路。所以,虽然没有简单的方法来做到这一点,但你提到的大多数东西都可以用CSS实现。像圈子这样的东西其实很简单。当涉及到三角形时,它更难一点。但是现在很多事情都可以通过一些CSS和JavaScript来实现。有很多Javascript库专门用于绘制/动画素材。
这不是HTML用于标记文档的目的。他们发明了像SVG这样的东西,还有像XHTML这样的可扩展标记语言,你可以用模块化的方式将它们插入其中。
如前所述,HTML和CSS不包含任何严重的形状功能。 不使用Javascript和Canvas脚本的最接近的东西就是SVG,它实际上只是一个用XML编写的矢量图形。
SVG的进一步信息:
- 1. CSS/HTML复杂形状
- 2. 使自定义形状的DIV + CSS HTML
- 3. CSS中的透镜形状
- 4. 如何用css制作HTML形状
- 5. CSS + HTML自定义形状按钮
- 6. 按钮形状可能与PHP/CSS/HTML?
- 7. 更改按钮形状html/css
- 8. html中的区域形状
- 9. CSS形状和外形
- 10. HTML/CSS中的自定义形状文本区
- 11. 如何在html/css中自定义形状的按钮?
- 12. 放在CSS形状
- 13. Css输入形状
- 14. CSS透明形状
- 15. 困难的css形状
- 16. css形状的边框
- 17. CSS生成的形状
- 18. 与CSS的按钮形状
- 19. 图形数据可视化的CSS或HTML或jQuery的
- 20. 是否有可能使一个不是圆形或正方形与HTML和CSS的形状?
- 21. 带文本的CSS梯形形状
- 22. 只有css的非矩形形状?
- 23. 标题前的CSS形状(方形)
- 24. 其中包含文字的css形状
- 25. Firefox中CSS形状的反锯齿
- 26. CSS中的不规则形状
- 27. 如何在CSS或SVG中制作此形状?
- 28. HTML/CSS:空矩形
- 29. HTML Canvas中的原始形状库
- 30. HTML/CSS - 带有图片的十字形状
http://css-tricks.com/examples/ShapesOfCSS/ – Cristy