【编程案例练习】HTML+CSS3 按钮悬停网页特效

HTML+CSS3 实现按钮悬停网页特效

第一步

在这里插入图片描述

    <div class="container">
        <a href="#">
            <span>Button</span>
            <span>Button</span>
        </a>
        <a href="#">
            <span>Button</span>
            <span>Button</span>
        </a>
    </div>
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* IE盒模型 */
    font-family: '微软雅黑', sans-serif;
}

body {
    display: flex;
    align-items: center;
    justify-content: center; /* 在主轴上的对齐方式: 位于容器的中心 */
    min-height: 100vh; /* 设置元素的最小高度 */
    background: #000;
}

PS:justify-content属性

justify-content属性定义了项目在主轴上的对齐方式。

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

在这里插入图片描述
它可能取5个值,具体对齐方式与轴的方向有关。下面假设主轴为从左到右。

  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:两端对齐,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

第二步

在这里插入图片描述
添加CSS

.container {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.container a {
    position: relative;
    width: 150px;
    height: 55px;
    text-align: center;
    line-height: 55px;
    margin:10px;
    text-transform: uppercase; /* 改变元素中的字母大小写:这里定义仅有大写字母 */
    background: #191919;
    color: #fff;
    text-decoration: none; /* 没有文本装饰,这里去掉下划线 */
    letter-spacing: 2px;
    /* overflow: hidden; */ 
}

第三步

添加CSS样式

.container a span {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 1000;
    transition: 0s ease-in; /* 元素样式从初始状态过渡到终止状态,速度越来越快,呈一种加速状态。这是渐显特效 */
}

.container a:hover span {
    transition: 0.4s ease-in;
    transform: translateY(-100%);
}

鼠标移动到第一个BUTTON时:
在这里插入图片描述
鼠标移动到第二个BUTTON时:
在这里插入图片描述


第四步

添加CSS样式:

.container a::before {
    width: 250px;
    height: 250px;
    background: paleturquoise;
    content: ''; /* 用于定义元素之前或之后放置的生成内容,即250px 250px paleturquoise */
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -250px;
    border-radius: 50%;
    transition: 0.4s ease-in;
}

.container a:hover::before {
    bottom: -150px;
}

.container a:nth-child(2)::before {
    bottom: 60px;
}

.container a:nth-child(2):hover::before {
    bottom: -40px;
}

最终实现效果:
在这里插入图片描述
鼠标移动到第一个BUTTON时:
在这里插入图片描述

在这里插入图片描述
鼠标移动到第二个BUTTON时:
在这里插入图片描述
在这里插入图片描述


PS: transform 属性 (部分介绍)
Transform字面上就是变形,改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。
在这里插入图片描述
参考下面视频:
https://www.ixigua.com/6818851166034592267/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值