代码控制css右移,怎么使用纯CSS实现悬停时右移的按钮效果

怎么使用纯CSS实现悬停时右移的按钮效果

发布时间:2020-09-14 14:33:20

来源:亿速云

阅读:113

作者:小新

这篇文章主要介绍怎么使用纯CSS实现悬停时右移的按钮效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

效果预览

31fee2bcb6897b97a5bb7af76aa7a105.png

源代码下载

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,导航中包含一个无序列表,列表项中内嵌一个 span,文字写在 span 中:

  • home

居中显示:body {

margin: 0;

height: 100vh;

display: flex;

align-items: center;

justify-content: center;

background-color: #333;

}

隐藏列表项前端的引导符号:nav ul {

padding: 0;

list-style-type: none;

}

设置按钮的尺寸和颜色:nav li {

width: 8em;

height: 2em;

font-size: 25px;

color: orange;

}

设置文字样式,注意高度是 120%,span 比它父级的 li 要高一些:nav li span {

position: relative;

box-sizing: border-box;

width: inherit;

height: 120%;

top: -10%;

background-color: #333;

border: 2px solid;

font-family: sans-serif;

text-transform: capitalize;

display: flex;

align-items: center;

justify-content: center;

}

将 span 元素稍向右移:nav li span {

transform: translateX(4px);

}

用列表项 li 的左边框画出 1 条竖线:nav li {

box-sizing: border-box;

border-left: 2px solid;

}

用列表项的伪元素再画出 2 条竖线,它们的高度依次降低,至此,按钮左侧一共有 3 条竖线:nav li {

position: relative;

}

nav li::before,

nav li::after

{

content: '';

position: absolute;

width: inherit;

border-left: 2px solid;

z-index: -1;

}

nav li::before {

height: 80%;

top: 10%;

left: -8px;

}

nav li::after {

height: 60%;

top: 20%;

left: -14px;

}

将伪元素的 2 条竖线的颜色逐渐变暗,增加一点层次感:nav li::before {

filter: brightness(0.8);

}

nav li::after {

filter: brightness(0.6);

}

增加鼠标悬停效果,默认状态是按钮遮住 3 条竖线,当鼠标悬停时,按钮右移,露出 3 条竖线:nav li:hover span {

transform: translateX(4px);

}

nav li span {

/* transform: translateX(4px); */

transform: translateX(-16px);

transition: 0.3s;

}

因为按钮默认状态的位置是偏左的,为了抵销这个偏移量,让列表项稍向右移:nav ul {

transform: translateX(16px);

}

在 dom 中再增加几个按钮:

  • home
  • products
  • services
  • contact

设置一下按钮的间距:nav li {

margin-top: 0.8em;

}

以上是怎么使用纯CSS实现悬停时右移的按钮效果的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值