触发 hover 效果时,设置文字底部横杠显示

需求描述

需要在鼠标悬停时显示文字效果及下面出现一个横条,如图
在这里插入图片描述

<!-- 页面结构 -->
<nav>
    <ul>
        <li>精选</li>
        <li>女装</li>
        <li>男装</li>
        <li>彩妆</li>
        <li>运动</li>
        <li>家用</li>
        <li>休闲鞋</li>
        <li>板鞋</li>
        <li>高跟鞋</li>
        <li>口红</li>
        <li>粉底</li>
        <li>腮红</li>
    </ul>
    <div class="iconfont icon-gengduo-2"></div>
</nav>

分析

思路1

  • 设置背景图片,调整大小,位置即可
  • 缺点:插入图片不够高效

思路2

  • 在文字下面放置一个标签(文字和标签在同一个盒子中)
  • 设置标签在鼠标hover时的样式
  • 感觉还是不够优化
  • eg:淘宝店铺

思路3

  • 使用伪元素选择器
  • hover时在文本后面追加内容,并对内容进行定位,样式设置
  • 开发可用
  • eg: 携程网

解决

思路1:插入背景图

代码

  nav li {
      flex-shrink: 0;
      text-align: center;
      line-height: 9.867vw;
      margin: 0vw 2.667vw;
  }
  
  nav li:hover {
      color: orangered;
      font-weight: bold;
      /* 设置横线-背景图 */
      background: url(../img/honggang.png) no-repeat center 30px/22px 3px;
  }

效果图

在这里插入图片描述

思路2:添加盒子

代码

<!-- 页面结构 -->
<nav>
    <ul>
        <li>
            精选
            <p></p>
        </li>
        <li>
            女装
            <p></p>
        </li>
     <!-- 其余同理,省略 -->
    </ul>
    <div class="iconfont icon-gengduo-2"></div>
</nav>
/* css样式 */
nav li:hover p {
    /* 不设置宽度,充满整个盒子,也不用考虑几个字的问题 */
    /* width: 25px; */
    /* 2.5px */
    height: .3333vw;
    border-radius: 10px;
    background-color: orangered;
    margin-top: -5px;
}

效果图

在这里插入图片描述

思路3:使用伪元素选择器

代码

nav li {
    flex-shrink: 0;
    text-align: center;
    line-height: 9.867vw;
    margin: 0vw 2.667vw;
    /* 子绝父相 */
    position: relative;
}

nav li:hover {
    color: orangered;
    font-weight: bold;
}

/* 设置横线-伪元素选择器 */
nav li:hover::after {
    content: "";
    width: 20px;
    height: 2.5px;
    background-color: red;
    border-radius: 10px;

    /* 占位 */
    /* position: relative; */
    /* top: 6px;
    right: 25px; */

    /* 不占位 */
    position: absolute;
    left: 6px;
    bottom: 4px;
}

/* 单独设置第7、9个li:使用伪类选择器 + 结构伪类选择器 + 伪元素选择器 进行选择 */
nav li:hover:nth-child(7)::after,li:hover:nth-child(9)::after {
    width: 30px;
    left: 10px;
}

效果图

在这里插入图片描述

注意

  1. 使用伪元素进行定位时,不能用相对定位,因为relative会占位,hover时占用文档流,出现空白块。如图:
    在这里插入图片描述
  2. 进行绝对定位时,要给追加内容的父元素设置相对定位(巧记:子绝父相)
  3. 进行定位时,因为使用的是数值进行定位,导航栏里若有3个及以上字数的情况,就会出现布局不合适。如图:
    在这里插入图片描述
    所以需要单独的设置其他字数的位置
  • 只需要设置宽度及水平位置即可
  • 此处同时运用,注意语法的结合顺序:伪类选择器 + 结构伪类选择器 + 伪元素选择器
    li:hover:nth-child(7)::after {}
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

本科大学生计算机毕业设计案例:遗失物品信息管理系统

设计需求&#xff1a; 客户需求&#xff1a; 项目所用技术&#xff1a; 后端&#xff1a;springBoot,mybatisPlus,springSecurity,Swagger2 前端&#xff1a;vue-element-admin,elementUi 数据库&#xff1a;mysql&#xff0c;redis 数据库表设计&#xff1a; 关键代码展示&a…

Springboot+Vue项目-基于Java+MySQL的在线视频教育平台系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

linux学习:标准IO

目录 接口 打开文件 关闭文件 读写 每次一个字符的读写标准 IO 函数接口 每次一行的读写标准 IO 函数接口 每次读写若干数据块的标准 IO 函数接口 获取或设置文件当前位置偏移量 标准格式化 IO 函数 系统 IO 的最大特点一个是更具通用性&#xff0c;不管是普通文件、管…

障碍物识别技术赋能盲人独立出行:一场静默的科技革新

作为一名资深记者&#xff0c;我始终关注并报道那些科技如何助力特殊群体克服生活挑战的动人故事。近期&#xff0c;一款叫做蝙蝠避障的应用进入了我的视线&#xff0c;它搭载先进障碍物识别技术以其独特的优势&#xff0c;悄然为视障人士的独立出行带来了显著变革。 “障碍物识…

asm磁盘组无法写入问题-处理中

有个11204的rac环境&#xff0c;没应用补丁&#xff0c;5号突然报归档满&#xff0c;登录环境后发现奇怪&#xff0c;一个1T磁盘建成的DATA磁盘组使用了近800G&#xff0c;读写正常&#xff0c;一个1.5T磁盘建成的FRA磁盘组&#xff0c;目前还剩余729551M&#xff0c;无法写入归…

AutoCAD之DWF三维信息提取---linux编译篇

1. 权限 1.1 给文件添加执行权限 chmod x autogen.sh1.2.给当前文件下的所有文件改变为读写执行权限 chmod 777 * -R 2.环境安装 2.1安装automake 1.4.1 安装链接 安装中遇到的问题及解决 2.2安装autoconf 2.3 安装libtool 2.4 安装Cmake(CMake包含) cmake安装在cent…

STM32—DMA直接存储器访问详解

DMA——直接存储器访问 DMA&#xff1a;Data Memory Access, 直接存储器访问。 DMA和我们之前学过的串口、GPIO都是类似的&#xff0c;都是STM32中的一个外设。串口是用来发送通信数据的&#xff0c;而DMA则是用来把数据从一个地方搬到另一个地方&#xff0c;而且不占用CPU。…

windows本地运行dreamtalk踩坑总结

dreamtalk是一个语音图片转视频的一个工具&#xff0c;就是给一段语音加一个头像图片&#xff0c;然后生成一段头像跟语音对口型的视频&#xff0c;其实还是很有意思的&#xff0c;最近阿里发布了一个类似的模型&#xff0c;但是还没开源&#xff0c;从展示视频看&#xff0c;阿…

酷开科技OTT大屏营销:开启新时代的营销革命

随着互联网技术的不断发展和普及&#xff0c;大屏已经成为越来越多家庭选择的娱乐方式。在这个背景下&#xff0c;酷开科技凭借其强大的技术实力和敏锐的市场洞察力&#xff0c;成功地将大屏转化为一种新的营销渠道&#xff0c;为品牌和企业带来了前所未有的商业机会。 酷开科技…

WEB3.0:互联网的下一阶段

随着互联网的发展&#xff0c;WEB3.0时代正在逐步到来。本文将深入探讨WEB3.0的定义、特点、技术应用以及未来展望&#xff0c;为读者带来全新的思考。 一、什么是WEB3.0&#xff1f; WEB3.0可以被理解为互联网发展的下一阶段&#xff0c;是当前WEB2.0的升级版。相较于2.0时代…

CentOS 各个版本下载地址

https://mirror.nsc.liu.se/centos-store/7.6.1810/isos/x86_64/ CentOS-7-x86_64-DVD-1810.iso 2018-Nov-26 00:55:20 4.2G application/octet-stream 正常版 CentOS-7-x86_64-DVD-1810.torrent 2018-Dec-03 16:03:27 85.9K application/x-bittorrent CentOS-7-x86_64-Every…

用户系统加密--Java

一个基本的用户系统如下&#xff1a; # 定义用户类 class User:def __init__(self, name, password):self.name nameself.password password# 创建用户列表 users []# 添加新用户 def add_user(name, password):new_user User(name, password)users.append(new_user)print…

洛谷-P1596 [USACO10OCT] Lake Counting S

P1596 [USACO10OCT] Lake Counting S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using namespace std; const int N110; int m,n; char g[N][N]; bool st[N][N]; //走/没走 int dx[] {-1,-1,-1,0,0,1,1,1}; //八联通 int dy[] {-1,0,1,1,-1,1…

LDF、DBC、BIN、HEX、S19、BLF、ARXML、slx等

文章目录 如题 如题 LDF是LIN报文格式文件&#xff0c;把这个直接拖到软件里面&#xff0c;可以发报文和接收报文 DBC是CAN报文格式文件&#xff0c;把这个直接拖到软件里面&#xff0c;可以发报文和接收报文 BIN文件烧录在BOOT里面&#xff08;stm32&#xff09;&#xff0c…

【前端】解决前端图表大数据配色难题:利用HSL动态生成颜色方案

解决前端图表大数据配色难题&#xff1a;利用HSL动态生成颜色方案 在数据可视化项目中&#xff0c;尤其是当需要绘制包含大量数据点的图表时&#xff0c;一个常见的挑战是如何为每个数据点分配一个独特而又视觉上容易区分的颜色。使用固定的颜色列表可能在数据点数量超过列表限…

CTF-SHOW SSRF

web351 存在一个flag.php页面&#xff0c;访问会返回不是本地用户的消息&#xff0c;那肯定是要让我们以本地用户去访问127.0.0.1/flag.php web352 代码中先判断是否为HTTP或https协议&#xff0c;之后判断我们传入的url中是否含有localhost和127.0.0&#xff0c;如果没有则…

课时93:流程控制_函数进阶_综合练习

1.1.3 综合练习 学习目标 这一节&#xff0c;我们从 案例解读、脚本实践、小结 三个方面来学习。 案例解读 案例需求 使用shell脚本绘制一个杨辉三角案例解读 1、每行数字左右对称&#xff0c;从1开始变大&#xff0c;然后变小为1。    2、第n行的数字个数为n个&#xf…

Golang | Leetcode Golang题解之第24题两两交换链表中的节点

题目&#xff1a; 题解&#xff1a; func swapPairs(head *ListNode) *ListNode {dummyHead : &ListNode{0, head}temp : dummyHeadfor temp.Next ! nil && temp.Next.Next ! nil {node1 : temp.Nextnode2 : temp.Next.Nexttemp.Next node2node1.Next node2.Nex…

项目实训2024.04.12日志:Self-QA生成问答对

1. Self-QA技术 1.1. 为什么要用Self-QA技术 关于为什么要搜集问答对&#xff0c;我在创新实训2024.04.07日志&#xff1a;提取QA对这篇文章中提到过&#xff1a;训练大模型需要从业务侧积累的问题、资料、文档中提取出一些指令-问答对作为输入的语料。 之前我们对于问答对的…

ChatGPT加持,需求分析再无难题

简介 在实际工作过程中&#xff0c;常常需要拿到产品的PRD文档或者原型图进行需求分析&#xff0c;为产品的功能设计和优化提供建议。 而使用ChatGPT可以很好的帮助分析和整理用户需求。 实践演练 接下来&#xff0c;需要使用ChatGPT 辅助我们完成需求分析的任务 注意&…