你需要这样的东西吗?
演示
一个更好看的演示
您也可以使用白色边框
带有过渡的演示
div {
height: 100px;
width: 100px;
border-radius: 50%;
border: 10px solid transparent;
color: #fff;
background: #515151;
}
div:hover {
border: 10px solid #FF4800;
color: #FF4800;
}
我有一个带有透明边框的固定宽度元素,因此我的元素不会在悬停时移动,您还可以设置元素边框以匹配背景颜色,最后但并非最不重要的是,在悬停时,我只需更改边框color to #FF4800,我还添加了过渡示例,如果您想要悬停时的平滑度。
如果你不希望元素因为透明边框background-color而跨越更多10px,并且你不想设置border-color匹配背景颜色,你可以使用content这样的 CSS 属性
演示(content带:after伪)
div {
height: 100px;
width: 100px;
border-radius: 50%;
color: #fff;
background: #515151;
text-align: center;
line-height: 100px;
font-size: 20px;
font-family: Arial;
position: relative;
margin: 30px;
}
div:hover:after {
border: 10px solid #FF4800;
color: #FF4800;
}
div:after {
content: "";
display: block;
height: 100px;
width: 100px;
position: absolute;
left: -10px;
top: -10px;
border: 10px solid transparent;
border-radius: 50%;
}