CSS 实现鼠标hover 展示内容

news2025/1/16 1:23:01

前言

👏CSS 实现鼠标hover 展示内容,速速来Get吧~
🥇文末分享源代码。记得点赞+关注+收藏!

1.实现效果

在这里插入图片描述

2.实现步骤

  • 定义一个宽高为300px的父容器
 <div class="box"></box>
.box {
  position: relative;
  width: 300px;
  height: 300px;
}
  • 父容器中添加一张图片,与父容器大小一致

在这里插入图片描述

<div class="box">
  + <img src="https://i.postimg.cc/GhXrMDN0/card.jpg" alt="图片" />
</div>
.box img {
  width: 100%;
  height: 100%;
}
  • 为父容器添加伪元素,宽高与父元素一致,背景色为50%的白色,基于父容器left为0,top为0,默认opacity设置为0,即不可见,并设置0.4s的transition过渡

在这里插入图片描述

.box:before {
  content: "";
  background: rgba(255, 255, 255, 0.5);
  width: 100%;
  height: 100%;
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  opacity: 0;
  transition: all 0.4s ease;
}
  • 父容器添加hover事件,当hover时候,为图片添加filter滤镜,设置透明度以及0.4s的transition过渡

在这里插入图片描述

.box img {
  + transition: all 0.4s;
}
.box:hover img {
 opacity: 0.8;
 filter: brightness(1.5);
}
  • 父容器添加hover事件,当hover时候,修改伪元素的高度为70%,设置border-radius圆角,将opacity改为1

在这里插入图片描述

.box:hover:before {
  height: 70%;
  border-radius: 0 0 150px 150px;
  box-shadow: 0 0 20px #000;
  opacity: 1;
}
  • 父容器添加圆角区域展示内容,方便调试,可以将hover状态选中

在这里插入图片描述

  • 圆角区域添加两行文字(可根据需求进行修改),默认opacity设置为0,即不可见,并设置1s的transition过渡

在这里插入图片描述

<div class="box">
 + <div class="box-content">
 +  <p>苏苏小苏苏</p>
 +  <p>web 前端</p>
 + </div>
</div>
.box .box-content {
  color: #333;
  text-align: center;
  width: 100%;
  padding: 0 30px;
  transform: translateX(-50%);
  position: absolute;
  top: 25%;
  left: 50%;
  z-index: 1;
  opacity: 0;
  transition: all 0.4s ease;
}
  • 父容器添加hover事件,当hover时候,圆角区域将opacity改为1

在这里插入图片描述

.box:hover .box-content {
  opacity: 1;
}
  • 父容器添加底部图标,两个图标flex横向布局,基于父容器absolute定位,水平居中,距离底部10px

在这里插入图片描述

<div class="box">
	+ <div class="box-icon">
	+  <div class="icon-item"><span class="iconfont">&#xe698;</span></div>
	+  <div class="icon-item"><span class="iconfont">&#xe65c;</span></div>
	+ </div>
</div>
.box .box-icon {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 10px;
  display: flex;
  align-items: center;
}
.box .icon-item {
  margin: 0 2px;
  background: rgba(255, 255, 255, 0.5);
  height: 35px;
  width: 35px;
  text-align: center;
  line-height: 31px;
  border: 2px solid #fff;
  cursor: pointer;
}
  • 设置底部图标进行x方向的偏移,两个图标进行相反方向的偏移,偏移出父容器可见区域即可,并设置0.4s的transition过渡

在这里插入图片描述

.box .icon-item{
	+ transition: all 0.4s;
}
.box .icon-item:nth-child(1) {
   transform: translateX(-200px);
}
.box .icon-item:nth-child(2) {
   transform: translateX(200px);
}
  • 父容器添加hover事件,当hover时候,设置底部图标进行x方向偏移量为0

在这里插入图片描述

  • 父容器设置overflow: hidden,不展示底部图标

在这里插入图片描述

.box {
 + overflow: hidden;
}
  • 为底部图标添加hover事件,当hover时候,设置圆角,就完成了啦~

在这里插入图片描述

.box .icon-item:hover {
  background-color: #fff;
  border-radius: 50%;
}

3.实现代码

<!DOCTYPE html>
<html lang="zh">
  <head>
    <link rel="stylesheet" href="./font.css" />
    <link rel="stylesheet" href="../common.css" />
    <style>
      .box {
        overflow: hidden;
        position: relative;
        width: 300px;
        height: 300px;
      }
      .box img {
        width: 100%;
        height: 100%;
        transition: all 0.4s;
      }
      .box:before {
        content: "";
        background: rgba(255, 255, 255, 0.5);
        width: 100%;
        height: 100%;
        position: absolute;
        z-index: 1;
        top: 0;
        left: 0;
        opacity: 0;
        transition: all 0.4s ease;
      }
      .box:hover:before {
        height: 70%;
        border-radius: 0 0 150px 150px;
        box-shadow: 0 0 20px #000;
        opacity: 1;
      }
      .box:hover img {
        opacity: 0.8;
        filter: brightness(1.5);
      }
      .box .box-content {
        color: #333;
        text-align: center;
        width: 100%;
        padding: 0 30px;
        transform: translateX(-50%);
        position: absolute;
        top: 25%;
        left: 50%;
        z-index: 1;
        opacity: 0;
        transition: all 1s ease;
      }
      .box-content p:nth-child(1) {
        font-size: 24px;
        font-weight: bold;
        letter-spacing: 8px;
        text-transform: uppercase;
        /* 定义无小写字母,仅有大写字母 */
        margin: 0 0 2px;
      }
      .box-content p:nth-child(2) {
        font-size: 16px;
        text-transform: capitalize;
        /* 文本中的每个单词以大写字母开头 */
      }
      .box:hover .box-content {
        opacity: 1;
      }
      .box .box-icon {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        bottom: 10px;
        display: flex;
        align-items: center;
      }
      .box .icon-item {
        margin: 0 2px;
        background: rgba(255, 255, 255, 0.5);
        height: 35px;
        width: 35px;
        text-align: center;
        line-height: 31px;
        border: 2px solid #fff;
        cursor: pointer;
        transition: all 0.4s;
      }
      .box .icon-item:nth-child(1) {
        transform: translateX(-200px);
      }
      .box .icon-item:nth-child(2) {
        transform: translateX(200px);
      }
      .box:hover .icon-item {
        transform: translateX(0);
      }
      .box .icon-item:hover {
        background-color: #fff;
        border-radius: 50%;
      }
    </style>
  </head>
  <body>
    <div class="box">
      <img src="https://i.postimg.cc/GhXrMDN0/card.jpg" alt="图片" />
      <div class="box-content">
        <p>苏苏小苏苏</p>
        <p>web 前端</p>
      </div>
      <div class="box-icon">
        <div class="icon-item"><span class="iconfont">&#xe698;</span></div>
        <div class="icon-item"><span class="iconfont">&#xe65c;</span></div>
      </div>
    </div>
  </body>
</html>

4.写在最后🍒

看完本文如果觉得对你有一丢丢帮助,记得点赞+关注+收藏鸭 🍕
更多相关内容,关注🍥苏苏的bug,🍡苏苏的github,🍪苏苏的码云~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TF1-项目搭建配置及用户登录

TF1-项目搭建配置及用户登录1、项目介绍1.1、功能列表1.2、项目背景1.3、功能概述1.3.1 用户登录1.3.2、交友首页探花搜附近桃花传音测灵魂1.3.3、圈子1.3.4、消息1.3.5、小视频1.3.6、我的1.4、技术方案1.5、技术解决方案2、前后端分离2.1、前后端分离的概述2.2、YAPI介绍3、开…

大分子葡聚糖-牛血清蛋白抗原偶联物(Dextran-BSA)|多糖-蛋白偶联物

大分子葡聚糖-牛血清蛋白抗原偶联物(Dextran-BSA)|多糖-蛋白偶联物 产品描述&#xff1a;用还原胺化法制备大分子葡聚糖-牛血清蛋白(BSA)拟糖蛋白抗原,通过SDS-聚丙烯酰胺凝胶电泳结合考马斯亮蓝和过碘酸-品红两种染色方法验证偶联物的生成,确定拟糖蛋白抗原的较佳偶联…

计算机毕业设计php+vue基于微信小程序的贵小团校园社团小程序

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,贵小团校园社团小程序就是信息时代变革中的产物之一。 任何系统都要遵…

Linux内核与SMP(对称多处理)

什么 是SMP&#xff1f; SMP的全称是“对称多处理“&#xff08;Symmetrical Multi-Processing&#xff09;技术&#xff0c;是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。它是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这…

两行代码自动压缩ViT模型!模型体积减小3.9倍,推理加速7.1倍

Transformer模型及其变体&#xff0c;因其更优的注意力机制能力和长时依赖等特性&#xff0c;已成为自然语言处理 (NLP)、语音识别 (ASR)、计算机视觉 (CV)等领域的主流序列建模结构。根据PaperWithCode网站ObjectDetectiononCOCOtest-dev专栏数据&#xff0c;检测任务中Transf…

嵌入式:ARM处理器的工作状态

文章目录Thumb技术介绍Thumb的技术概述Thumb的技术实现Thumb技术的特点ARM处理器工作状态Thumb2技术介绍评价Thumb技术介绍 ARM的RISC体系结构的发展中已经提供了低功耗、小体积、高性能的方案。而为了解决代码长度的问题&#xff0c;ARM体系结构又增加了&#xff34;变种&…

微信小程序实现圆形菜单弹出选中动画

vector-effect是SVG中十分冷门的属性&#xff0c;相信大多数小伙伴都没有了解过&#xff0c;说句实话&#xff0c;在这次重学SVG之前&#xff0c;这个属性我连听都没听说过。 不过&#xff0c;冷门不重要&#xff0c;重要的是管用&#xff0c;尤其是以后在面对相应场景下&…

RISC-V SIG 推出基于openEuler 的下游发行版 Eulaceura

近日&#xff0c;openEuler RISC-V SIG 推出了一款基于 openEuler 的发行版-Eulaceura。这是首个基于 openEuler 开发的 RISC-V 架构的发行版&#xff0c;给 RISC-V 的开发者开箱即用的 RISC-V 系统环境&#xff0c;方便开发者进行各种创新项目的开发与验证。Eulaceura 目前提供…

【数据结构】队列的实现

目录队列的概念队列的结构声明队列的初始化数据入队判断队列是否为空队列出数据获取队头获取队尾获取队列长度摧毁队列队列的概念 只允许从一端插入数据&#xff0c;另一端出数据。 队头:出数据的一端叫队头。 队尾:入数据的一端叫队尾。 通俗地说&#xff0c;就是把栈的数据结…

用技术记录世界杯2022

用技术记录世界杯【2022】 文章目录用技术记录世界杯【2022】前言1 项目介绍2 实验复现2.1 关于项目2.2 数据准备2.3 特征工程3 我的感受前言 Hi&#xff0c;我是Ding Jiaxiong&#xff0c;好久不见(bushi&#xff0c;早上才更新了博客)&#xff0c; 今天是2022 年12月 8日 2…

未部署ssl证书,您的账号、密码或被窃取!

浏览网页查找信息时&#xff0c;您有没有注意到有些网站的网址是以https&#xff1a;//开头的&#xff0c;有些网址是http&#xff1a;//开头&#xff1f;有时还会显示一个突出的警告页面&#xff0c;表明网站是“不安全的”可能会窃取您的账号、密码&#xff0c;骗取财产等。 …

Mybatis-Plus的@Version注解:使用updateBatchById方法引发的问题

正常情况下&#xff0c;我们想要的是&#xff0c;当乐观锁不对的时候要一个反馈&#xff0c;例如&#xff1a;版本号不一致&#xff0c;请刷新页面重新获取数据。 在没有Version注解的时候&#xff0c;一般我们会进行显示校验。例如下图&#xff1a; updateById方法使用演示 …

数商云SRM供应商系统售后模块解析 | 助力汽修企业打造高效SRM服务管理体系

随着我国汽车保有量的持续增长&#xff0c;汽车维修行业不断地向社会化方向发展&#xff0c;汽修行业从产品型的行业转变为服务型行业&#xff0c;成为一个社会化的、人才专业型、技术密集型的和相对独立的行业&#xff0c;发展势头迅猛&#xff0c;据统计&#xff0c;我国的汽…

跨主机访问——docker

当你有若干个容器之后,你可能就希望实现容器的跨机部署访问了,比如aspnetcore在一台host上,mysql在另外一个host上,如果要实现这样的功能,需要你 借助docker自带的overlay网络模型了。 一: overlay网络模型 要想快速的搭建overlay网络,你可以通过docker默认的swarm集群…

代码随想录Day45|70.爬楼梯(进阶)、322.零钱兑换、279.完全平方数

文章目录70.爬楼梯&#xff08;进阶&#xff09;322.零钱兑换279.完全平方数70.爬楼梯&#xff08;进阶&#xff09; 文章讲解&#xff1a;代码随想录 (programmercarl.com) 题目链接&#xff1a;programmercarl 题目&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼…

【C#基础学习】第十六章、枚举

目录 枚举 1.枚举的补充 1.1底层类型 1.2 设置显式值 1.3 枚举成员赋值顺序 2.位标志 2.1 Flags特性 枚举 枚举的定义&#xff1a; 枚举是由程序员自定义的值类型。它只有一种类型成员&#xff1a;命名的整数值常量。枚举成员都有一个底层类型的常量值。第一个枚举成员的…

【场景削减】拉丁超立方抽样方法场景削减(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Linux搭建RabbitMQ集群环境

文章目录环境说明Erlang安装下载安装包安装验证RabbitMQ安装下载安装包安装启动RabbitMQ设置开机自动启动安装管理界面创建用户登录管理界面集群配置前提条件构建erlang集群高可用镜像集群配置环境说明 操作系统&#xff1a;CentOS7Erlang版本&#xff1a;21.3RabbitMQ版本&am…

信而泰耦合测试-网络测试仪实操

一、耦合测试原理 1.产生背景​ 常用测试无线设备过程中&#xff0c;将无线设备置于屏蔽箱中&#xff0c;通过无线网卡连接并运行iperf等类似软件的方式检测所述无线设备的吞吐量。 相关技术中将所述无线设备置于所述屏蔽箱中的检测方法&#xff0c;由于所述屏蔽箱存在信号反…

【C语言】字符串函数(二)

目录 一、strncpy函数(字符串拷贝) 1、strncpy函数的用途 2、strncpy函数的使用 二、strncat函数(字符串追加) 1、strncat函数的用途 2、strncat函数的使用 三、strncmp函数(两个字符串比较) 1、strncmp函数的用途 2、strncmp函数的使用 四、strstr函数(查找字符串) 1、strstr函…