You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CSS hover显示列表时错位到左侧而非对应文本下方如何解决

问题原因

你当前的下拉列表为默认块级元素,没有绑定定位参照,设置的width: 100%会继承上层父容器宽度,因此会对齐到页面左侧,而非对应触发文本的下方。

修改方案

只需调整两处CSS规则即可实现需求:

  1. 给触发文本的父容器(b1/b2/b3)设置相对定位,作为下拉列表的定位参照
  2. 移除下拉列表的浮动属性,改为绝对定位,对齐到父容器的底部左侧

完整修改后的CSS代码:

/* 新增:给触发容器加相对定位,改为行内块保证宽度和自身文本一致 */
.b1, .b2, .b3 {
  position: relative;
  display: inline-block;
  margin-right: 20px; /* 可自定义,调整三个触发文本的横向间距 */
}

span.myserv-in {
  /* 移除原有的float: left和width: 100%属性 */
  display: none;
  position: absolute;
  top: 100%; /* 对齐到触发文本的最下方 */
  left: 0; /* 和触发文本左对齐 */
  min-width: 280px; /* 可自定义,设置下拉列表最小宽度 */
  color: #fff;
  font-size: 16px;
  line-height: 27px;
  background: #000; /* 可自定义,加背景避免文字和下层内容重叠 */
  z-index: 999; /* 保证下拉列表浮在最上层不被遮挡 */
  padding: 10px; /* 可自定义,调整下拉区域内边距 */
}

span.myserv-in > a {
  display: block;
  color: #fff;
  text-decoration: none; /* 可自定义,去掉链接默认下划线 */
  padding: 3px 0; /* 可自定义,调整链接上下间距 */
}

span.b1:hover span.myserv-in,
span.b2:hover span.myserv-in,
span.b3:hover span.myserv-in {
  display: block;
}

p.text_show {
  cursor: pointer;
}

效果说明

修改后悬停BUILD/GROW/RUN任意文本时,对应的下拉列表都会精准展示在对应触发文本的正下方左对齐位置,不会再偏移到页面左侧。

内容的提问来源于stack exchange,提问作者Rahul Pamnani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:12:02