【发布时间】:2015-09-10 12:37:19
【问题描述】:
我正在尝试为一个边框制作一个响应式三角形,该边框仅在hover 上可见。我尝试了下面的代码,但它不起作用,因为它使用静态border-width。当我有一个字符串(单行)链接时,它是完美的,但是当字符串更多(多于一行)时,它就失败了。
代码在这里:
<ul>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Lorem ipsum dolor sit amet</a></li>
</ul>
此处为 SCSS:
ul{
width:120px;
li{
list-style-type: none;
a{
position:relative;
display:block;
padding:10px;
color:#00f;
text-decoration: none;
&:hover{
color:#fff;
background:#00f;
&:after{
content:'';
position: absolute;
top: 0;
right: -5px;
height: 0;
border-style: solid;
border-width: 19px 0 19px 11px;
border-color: #fff #fff #fff #00f;
}
}
}
}
}
最后一个链接失败。使用图像或图片不能解决问题。
【问题讨论】:
-
虽然上面链接的线程非常接近这个线程,但这里不能采用相同的方法,因为三角形大小与父元素的
width成正比(因此百分比padding可以用来保持纵横比),而这里它必须与父元素的height成比例(百分比padding总是相对于width计算)。
标签: css svg responsive-design css-shapes