首页 > 其他分享 >:hover下拉框的实现

:hover下拉框的实现

时间:2023-04-10 20:13:29浏览次数:31  
标签:hover bottom 实现 标签 header 下拉框 left

通过绝对定位与:hover实现的下拉框效果;一开始没什么大问题,效果也都实现了;但观察对应的项目发现其中的文字其实是超连接所以后续添加了超连接标签后就无法通过:hover进行展示了。

源代码

 <div class="header-bottom">
      <ul>
        <a href="">
          <li>首页</li>
        </a>
        <a href="#" class="all">
          <li>所有商品</li>
          <div class="allShopping">
            <div class="shopIntroduce">
              <img src="../img/nav1.jpg" alt="">
              <p>浓情欧式</p>
            </div>
            <div class="shopIntroduce">
              <img src="../img/nav2.jpg" alt="">
              <p>浪漫美式</p>
            </div>
            <div class="shopIntroduce">
              <img src="../img/nav3.jpg" alt="">
              <p>雅致中式</p>
            </div>
            <div class="shopIntroduce">
              <img src="../img/nav4.jpg" alt="">
              <p>简约现代</p>
            </div>
            <div class="shopIntroduce">
              <img src="../img/nav5.jpg" alt="">
              <p>创意装饰</p>
            </div>
          </div>
        </a>
        <a href="#" class="wall">
          <li>装饰摆件</li>
          <div class="wallIntroduce">
              <span>干花花艺</span>
              <span>花瓶花器</span>
          </div>
        </a>
        <a href="#" class="buyi">
          <li>布艺软饰</li>
          <div class="textLink">
            <span>桌布罩件</span>
            <span>保证靠垫</span>
          </div>
        </a>
        <a href=""><li>墙饰壁挂</li></a>
        <a href=""><li>蜡艺熏香</li></a>
        <a href=""><li>创意家具</li></a>
      </ul>
    </div>

/* 设置下拉盒子样式 */
.header-bottom .wallIntroduce{
  /* 固定展示盒子对应的位置 */
  position: absolute;
  font-size: 13px;
  width: 100%;
  top: 140px;
  left: 0px;
  padding: 20px;
  padding-left: 380px;
  background-color: #fff;
  display: none;
}

/* 设置下拉盒子样式 */
.header-bottom .textLink{
  /* 固定展示盒子对应的位置 */
  position: absolute;
  font-size: 13px;
  width: 100%;
  top: 140px;
  left: 0px;
  padding: 20px;
  padding-left: 380px;
  background-color: #fff;
  display: none;
}

/* 上方连接触发时将下方的下拉框显示 */
.header-bottom .wall:hover .wallIntroduce{
  display: block;
}



/* 上方连接触发时将下方的下拉框显示 */
.header-bottom .buyi:hover .textLink{
  /* color: cadetblued */
  display: block;
}

/* 设置下拉框中文本间距 */
.header-bottom .wallIntroduce span{
  margin-left: 50px;
}

/* 设置下拉框中文本间距 */
.header-bottom .textLink span{
  margin-left: 50px;
}

代码修改如下:在下拉框中添加了一个a标签的外侧标签后无法通过:hover显示下拉框

<a href="#" class="buyi">
          <li>布艺软饰</li>
          <div class="textLink">
            <a href=""><span>桌布罩件</span></a>
            <span>保证靠垫</span>
          </div>
        </a>

问题:a标签中不能嵌套a标签,因为a标签是行级元素,如果在a标签之中套用a标签的话浏览器会自动帮助a标签中的那个a标签提升等级,使其变为兄弟关系的标签。

image-20230410195308577

<body>
  <a href="">
    哈哈
    <a href="">你好</a>
  </a>
  <p>你好
    <p>(ノ`Д)ノ</p>
  </p>
</body>

在浏览器中标签级别如图

解决方法:给a标签外部新增一个object标签

image-20230410195433736

<body>
  <a href="">
    哈哈
    <object data="" type="">
      <a href="">你好</a>
    </object>
    
  </a>
  <p>你好
    <object data="" type="">
      <p>(ノ`Д)ノ</p>
    </object>
  </p>
</body>

现在标签的结构就是正确的了

object标签的定义和用法

定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。

标签:hover,bottom,实现,标签,header,下拉框,left
From: https://www.cnblogs.com/Zyatoer/p/17304135.html

相关文章

  • 借用gcc内置函数帮助C来实现函数重载
    借用gcc内置函数__builtin_choose_expr和__builtin_types_compatible_p可以帮助c来实现函数重载。首先对这两个函数功能做下介绍__builtin_choose_expr(expr,expr1,expr2)与c语言:?运算符有些类似,如果expr表达式为真,那么返回expr1,否则返回expr2_builtin_types_compatible_p(ty......
  • 从零开始USRP 03 实现一个USRP收发demo(hello world)
    这里用的源码来自:UHDC/C++编程实例USRP发送、接收数据我所使用的USRP型号是N210r4,因此默认地址的最后一位是4,使用Ubuntu20.04运行(至于为什么之前配的是18.04,那是因为之前是在我的虚拟机上玩耍的,但是我的虚拟机配网络有点麻烦,因此我给学姐的学长借了一台Linux笔记本,用这台笔......
  • spring boot单库动态分表实现【增删查】(含源码)
    一.背景现实场景中当个别业务数据量过大时会影响系统功能性能,当整个业务还没有达到分库的级别时,动态分表也是一个的选择,基本思想是按照一定维度将数据分表存储动态查询。本次实现的是基于springboot的单表动态增删查,首先分表的规则根据一个格式生产,包含时间在其中,每一条数据......
  • 深入理解 python 虚拟机:字节码教程(2)——控制流是如何实现的?
    深入理解python虚拟机:字节码教程(2)——控制流是如何实现的?在本篇文章当中主要给大家分析python当中与控制流有关的字节码,通过对这部分字节码的了解,我们可以更加深入了解python字节码的执行过程和控制流实现原理。控制流实现控制流这部分代码主要涉及下面几条字节码指令,......
  • 使用 Nginx 实现域名解析到不同端口的应用
    作为个人网站的服务器,一般都是一台。上面部署了各种应用,都是不同的端口。但是域名只能解析到80端口,而且如果你使用隐形URL转发的话,又需要另外加钱(TX的就是几百块一条....),这就很尴尬了。另一种显性URL又会直接301跳转,体验非常不好。这可如何是好呢?这就需要用到Nginx做反向代理了......
  • 【享元设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介享元模式(FlyweightPattern),是一种结构型设计模式。主要用于减少创建对象的数量,以减少内存占用和提高性能。它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。当程序需要生成数量巨大的相似对象时,可能对内存有......
  • WebAssembly 助力云原生:APISIX 如何借助 Wasm 插件实现扩展功能?
    本文将介绍Wasm,以及ApacheAPISIX如何实现Wasm功能。作者朱欣欣,API7.ai技术工程师原文链接什么是WasmWasm是WebAssembly的缩写。WebAssembly/Wasm是一个基于堆栈的虚拟机设计的指令格式。在Wasm未出现之前,浏览器中只能支持运行Javascript语言。当Wasm出现......
  • Pandas模块实现向Excel写入数据
    Pandas模块实现向Excel写入数据importpandasaspddfData={#用字典设置DataFrame所需数据'序号':data[0],'项目':data[1],'数据':data[2]}#创建DataFramedf=pd.DataFrame(dfData)#存表,去除原始索引列(0,1,2...)df.to_excel(fi......
  • Express实现定时发送邮件
    在开发中我们有时候需要每隔一段时间发送一次电子邮件,或者在某个特定的时间进行发送邮件,无需手动去操作,基于这样的情况下我们需要用到了定时任务,一般可以写个定时器,来完成相应的需求,在node.js中自已实现也非常容易,接下来要介绍的是node-schedule来完成定时任务用express.js实......
  • CSS实现单行或者多行文本溢出隐藏并且显示省略号
    一、单行超出显示省略号如果文字超出父元素指定宽度,文字会自动换行,而连续不间断数字和英文字母(没有其他字符)不会自动换行;详细步骤:第一步(不换行):white-space:nowrop;(对于连续的数字或者英文字母可省略)第二步(溢出隐藏)overflow:hidden;第三步(文本溢出显示省略号)text-overflow:ellip......