我试图创建一个圆圈,它border
看起来应该与div颜色相同,并且边框和div之间有一个空格.空间之间应该显示它所处的div的背景颜色.背景颜色是可变的,所以我们不应该硬编码.
相反,我使用rgba
模式给出了透明度.所有的工作都很好我试图在圈子的悬停上得到这个效果,但我无法得到悬停因为我正在尝试display:block
悬停和正常状态它是display:none;
这是为后选择器因此我尝试这种效果与选择后.
代码CSS
.main{
width:80px;
height:80px;
border-radius:100%;
background-color:#007eff;
text-align:center;
line-height:80px;
}
.main:hover + .main:after{
display:block;
}
.main:after{
width:86px;
height:86px;
border-radius:100%;
background:rgba(255,255,255,0.1);
border:2px solid #007eff;
position:absolute;
content:"";
z-index:-1;
top:3px;
left:3px;
display:none;
}
body{
background-color:#888;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div class="main"><i class="fa fa-camera-retro fa-lg"></i>
</div>
Run Code Online (Sandbox Code Playgroud)
设置position:relative;
为.main
并将 的设置left/right/top/bottom
为零.main:after
并添加transition:all ease 0.3s
动画。
在.main:hover:after
更改left/right/top/bottom
为-5px
.
.main{
width:80px;
height:80px;
border-radius:100%;
background-color:#007eff;
text-align:center;
line-height:80px;
position:relative;
margin:6px;
}
.main:after{
border-radius:100%;
background:rgba(255,255,255,0.1);
border:2px solid #007eff;
position:absolute;
content:"";
z-index:-1;
top:0px;
left:0;
bottom:0;
right:0;
transition:all ease 0.3s;
}
.main:hover:after{
top:-5px;
bottom:-5px;
right:-5px;
left:-5px;
}
Run Code Online (Sandbox Code Playgroud)