要防止悬停并在CSS三角形外部单击,可以使用变换来制作三角形.
关键是要使用一个带有隐藏溢出的包装器并旋转可点击/可移动元素,使其实际上具有三角形形状,并防止点击事件或悬停状态在三角形外部.
.tr {
width: 40%;
padding-bottom: 28.2842712474619%; /* = width / sqrt(2) */
position: relative;
overflow: hidden;
}
.tr a {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
background-color: rgba(0,122,199,0.7);
transform-origin: 0 100%;
transform: rotate(45deg);
transition: background-color .3s;
}
/** hover effect **/
.tr a:hover {
background: rgba(255,165,0.7);
}
另一种方法是使用带有可点击三角形的SVG:
#tr{
fill:transparent;
transition:fill .3s;
}
#tr:hover{
fill: orange;
}
/** for the demo **/
html,body{height:100%;margin:0; padding:0;}
body{background:url('https://farm8.staticflickr.com/7435/13629508935_62a5ddf8ec_c.jpg') center no-repeat;background-size:contain;}
svg{display:block;width:30%;margin:0 auto;}