CSS实现DOM两边延伸效果

今天在做开发的时候突发奇想做一个鼠标放上去,底部边框向两边延伸的动画效果。主要思想是用DOM的伪元素来代替它自身的border,然后设置伪元素的width和height的动画效果。

Dome演示地址:

https://www.wlittleyang.com/HTML+CSS3-Note/source/HTML5+CSS3/borderDoubleGrow.html

代码如下:

html:

<div id="box">
    <div>摸我</div>
</div>

css:

<style type="text/css">
   
#boxmargin: 40px auto;}
    #box,#box>div{
       
width: 300px;
       
height: 300px;
       
box-sizing: border-box;
       
position: relative;
       
cursor: pointer;
       
background: #eeeeee;
       
line-height: 300px;
       
text-align: center;
       
font-size: 50px;
   
}
    #box::before,
   
#box::after,
   
#box>div::before,
   
#box>div::after{
       
content: "";
       
background: crimson;
       
transition: all 1s ease;
       
width: 0;
       
height: 0;
       
position: absolute;
       
z-index: 1;
   
}
    #box::before{
       
left: 50%;
       
height: 2px;
       
top: 0;
   
}
    #box::after{
       
bottom: 0;
       
left: 50%;
       
height: 2px;
   
}
    #box>div::before{
       
left: 0;
       
top: 50%;
       
width: 2px;
   
}
    #box>div::after{
       
right: 0;
       
top: 50%;
       
width: 2px;
   
}
    #box:hover::before,
   
#box:hover::after{
       
left: 0;
       
width: 100%;
   
}
    #box>div:hover::before,
   
#box>div:hover::after{
       
top: 0;
       
height: 100%;
   
}
</style>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值