【发布时间】:2015-10-13 17:55:52
【问题描述】:
我想知道实际上有什么方法可以创建具有真正三角形形状的三角形吗?或者是一种伪造它以尽可能接近的方法?
每当您使用 svg 之类的东西绘制三角形时,您总是会遇到一个透明的三角形,该三角形是镜像的,因为元素被绘制为框。
我举了一个例子,因为我觉得很难解释:
http://codepen.io/stephan-v/pen/gaxdjm
svg {
width: 100px;
height: 100px;
position: absolute;
right: 0;
top: 0;
}
svg polygon {
fill: rgba(168, 210, 71, 0.6);
cursor: pointer;
}
svg polygon:hover {
fill: rgba(168, 210, 71, 0.9);
cursor: pointer;
}
article {
position: relative;
width: 200px;
height: 200px;
background-color: whitesmoke;
border: 1px solid lightgrey;
}
article a {
display: block;
width: 100%;
height: 100%;
}
<article>
<a href="#">
</a>
<svg>
<polygon points="0,0 100,0 100,100" />
</svg>
</article>
我将整篇文章设为链接,并将 svg 三角形也设为链接。但是因为三角形被渲染为一个块,所以有一小部分正好是三角形的镜像,不能点击。
对于一个项目,我想删除无法点击的部分。就是红色部分:
【问题讨论】:
-
你想用什么方式删除它?例如,如果您只希望可见三角形处理点击,则可以将事件侦听器添加到
<polygon>元素。见this edit。 -
我无法复制你的链接:(
-
我已经有一个事件监听器我想防止红色部分阻塞它下面的内容。
标签: html css svg css-shapes