用HTML和CSS实现华为新闻效果——鼠标悬停时图片缩放并且文字上升

用HTML和CSS实现华为新闻效果——鼠标悬停时图片缩放并且文字上升

一、效果

在这里插入图片描述
当鼠标悬停时,有三个效果:
1. 图片缩放;
2. 文字上浮;
3. 图片伴有透明遮罩

二、、整体分析

1. 图片缩放

使用伪类选择器hover(使用格式:选择器:hover { CSS 属性 }
),在鼠标悬停时设置图片样式

.dec:hover img {
        transform: scale(1.2);
      }

这里是使用scale使图片达到放大的效果,括号中的参数即为图片的放大倍数,也可以在img上添加过渡效果,让缩放更为柔和

2. 文字上浮

同样使用伪类选择器hover,在鼠标悬停时设置文字样式

.dec .txt {
        position: absolute;
        bottom: -70px;
        padding: 25px 30px;
        z-index: 2;
        font-size: 18px;
        color: #fff;
        transition: all 0.8s;
      }
      .dec:hover .txt {
        transform: translateY(-40px);
      }
      .dec .txt h5 {
        font-size: 22px;
        margin: 5px 0;
      }
      .dec .txt .more {
        margin-top: 20px;
        font-size: 15px;
      }
      .dec .txt .more i {
        color: red;
      }

先用定位(父相子绝),将bottom设置为负值,让最后一排文字超出盒子的范围,并在盒子的父级(即:.dec)添加overflow: hidden将文字进行隐藏

3. 图片伴有透明遮罩

应用伪元素和父相子绝让遮罩覆盖dec盒子

.dec::after {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-image: linear-gradient(transparent, rgba(94, 89, 89, 0.5));
        opacity: 0;
      }
      .dec:hover::after {
        opacity: 1;
      }

这里的opacity 属性指定了一个元素的不透明度。即:元素背景的被覆盖程度。

opacity: 1完全不透明
opacity: 0.5半透明
opacity: 0完全透明

4. 注意事项

因为遮罩用了after伪元素,所以会压住txt和img,所以想让txt压在遮罩上面,需要设置z-index值(默认值为0,取值越大,层级越高)

三、完整代码

1. HTML代码

<body>
    <div class="news">
      <div class="dec">
        <img src="./images/product.jpeg" alt="" />
        <div class="txt">
          <p>产品</p>
          <h5>OceanStor Pacific 海量存储斩获2021 Interop金奖</h5>
          <p class="more">了解更多<i class="iconfont icon-arrow-right"></i></p>
        </div>
      </div>
      <div class="dec">
        <img src="./images/huawei1.jpeg" alt="" />
        <div class="txt">
          <p>行业洞察</p>
          <h5>迈向智能世界2030</h5>
          <p class="more">了解更多<i class="iconfont icon-arrow-right"></i></p>
        </div>
      </div>
      <div class="dec">
        <img src="./images/huawei2.jpeg" alt="" />
        <div class="txt">
          <p>《ICT新视界》刊首语</p>
          <h5>笃行致远,共建具有获得感、幸福感、安全感的智慧城市</h5>
          <p class="more">了解更多<i class="iconfont icon-arrow-right"></i></p>
        </div>
      </div>
    </div>
  </body>

2. CSS样式

<style>
      .news {
        margin: 50px;
      }
      .dec {
        position: relative;
        float: left;
        margin-right: 10px;
        width: 400px;
        height: 280px;
        overflow: hidden;
      }
      .dec img {
        width: 100%;
        height: 100%;
        transition: all 0.8s;
      }
      .dec:hover img {
        transform: scale(1.2);
      }
      .dec .txt {
        position: absolute;
        bottom: -70px;
        padding: 25px 30px;
        z-index: 2;
        font-size: 18px;
        color: #fff;
        transition: all 0.8s;
      }
      .dec:hover .txt {
        transform: translateY(-40px);
      }
      .dec .txt h5 {
        font-size: 22px;
        margin: 5px 0;
      }
      .dec .txt .more {
        margin-top: 20px;
        font-size: 15px;
      }
      .dec .txt .more i {
        color: red;
      }
      /* 遮罩 */
      .dec::after {
        content: "";
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        background-image: linear-gradient(transparent, rgba(94, 89, 89, 0.5));
        opacity: 0;
      }
      .dec:hover::after {
        opacity: 1;
      }
    </style>
  • 7
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值