【发布时间】:2020-01-10 16:13:47
【问题描述】:
我正在尝试创建一个菜单,其中包含一起形成一个正方形的直角三角形。这是我的设想:
这是我希望达到的目标:
- 可以通过javascript动态生成。
- 缩放到父级
- 剪辑一个图像作为每个三角形的背景(不能是 CSS)
- 链接到每个三角形的网站
- 悬停时更新背景和文本颜色
- 支持多种浏览器
我尝试了几种不同的方法,但每种方法都遇到了几个问题:
- CSS 黑客:
- 无法将文本设置为正确的位置
- 无法单独设置边框
- SVG
- 悬停时无法更新颜色。我最接近的是这里:https://jsfiddle.net/71xp6r0s
<div class="menu-box">
<svg id="menu" style="border: black solid 1px" width="100" height="100" viewbox="0, 0, 100, 100">
<polygon class = "top" points='0,0 0,100 100,0' fill="none" stroke="red"/>
<text x="-18" y="68" fill="black" transform="rotate(-45)">Item</text>
<polygon points='100,0 100,100 0,100' fill="none" stroke="red" />
<text x="-18" y="84" fill="black" transform="rotate(-45)">Item</text>
</svg>
</div>
- 帆布
- 难以动态适应父级
- 剪辑路径:
- 大多数浏览器不支持。
我知道这很有野心,但我们将不胜感激。我也对其他想法持开放态度,但这些是我在网上找到的。
编辑:切换到更好的图像
【问题讨论】:
-
我得到的最接近的是使用 svg。这是我遇到问题之前的情况:jsfiddle.net/71xp6r0s。我需要能够使用 CSS 单独单击和更改每个三角形的文本和颜色,但根据我阅读的内容,你不能使用 css 来做到这一点。
-
将此分享到您的问题中,您可以使用 CSS 完成此操作
-
澄清一下,您可以使用 css 操作 svg 的各个组件?
-
请注意,您可以使用Stack Snippets 重现几乎所有 jsFiddle 可以做的事情,在 Stack Overflow 上。
标签: javascript html css svg css-shapes