我有一个a
元素。在悬停时,我添加了轮廓和轮廓偏移以及其他填充。问题是元素在悬停时移动。
HTML
<a href="javascript:void(0)" class="link">test</a>
CSS
.link {
display: inline-block;
// margin: 1px 1px;
}
.link:hover {
outline: 0.125rem dotted red;
color: black;
outline-offset: -1px;
padding: 1px 1px;
// margin: 0;
}
http://jsfiddle.net/5pbk9djp/116/
我发现的两种方式是:
我绝对不喜欢第一种情况。如果我别无选择,我会选择第二个。
其他什么想法?
答案 0 :(得分:1)
正常状态下的填充很好,但另一种方法是使用负translateX
和translateY
,例如。
.link:hover {
...
padding: 1px 1px;
-webkit-transform: translate(-1px, -1px);
-moz-transform: translate(-1px, -1px);
-o-transform: translate(-1px, -1px);
transform: translate(-1px, -1px);
}
2d转换为well supported(甚至来自IE9)
答案 1 :(得分:0)
有了这个你不关心浏览器兼容性,所有前缀-moz,-webkit ......不需要
.link {
display: inline-block;
}
.link:hover {
outline: 0.125rem dotted red;
color: black;
outline-offset: -1px;
padding: 1px 1px;
position: relative;
top: -1px;
left: -1px;
}