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

Hover下拉菜单超出屏幕显示不全,求可靠调整方案

Hover触发的Dropdown子菜单显示问题求助

我在实现Hover触发的dropdown子菜单时遇到以下问题:

  • 浏览器全屏状态下,最后一个菜单的子菜单仅显示2项(实际包含5项);
  • 缩小浏览器窗口后,子菜单会超出屏幕范围。

此前我尝试使用bottom: calc()来调整,但导致子菜单位置错乱。请问有什么更优的解决方案?

当前实现代码

CSS代码

.sidebar-left .dropdown {
      position: static;
    }

    .sidebar-left .dropdown .dropdown-menu {
      position: absolute;
      z-index: 10;
      display: none;
    }

    .sidebar-left .dropdown:hover .dropdown-menu{
      position: absolute;
      display: block;
      left: 63px;
      transform: translateY(-50px);
    }
    .sidebar-left .dropdown:hover > .dropdown-menu{
      display: block;
    }

    .sidebar-left.open .dropdown:hover .dropdown-menu{
      position: absolute;
      display: block;
      left: 273px;
    }

    .sidebar-left.open li[aria-expanded="true"]:hover > .dropdown-menu{
      display: none;
    }


    .sidebar-left.open .dropdown:hover > .dropdown-menu{
      display: block;
    }

    .dropdown-menu{
      position: absolute;
      padding-top: 0;
      padding-bottom: 0;
      box-shadow: 2px 2px 2px 2px #222;
      background-color: #4c5569;
      border-radius: 1px;
    }
    .dropdown-menu li{
      margin-top: 0;
      margin-bottom: 0;
      padding: 15px 25px;
      min-width: 175px;
    }

    .dropdown-menu li a span {
      font-size: .8rem;
      line-height: 1rem;
      color: #fff;
      text-decoration: none;
    }

    .dropdown-menu li:hover {
      background-color: rgba(255,255,255,.05);
    }

HTML代码

<div class="sidebar-left" id="sidebar">
      <div class="sidebar-header">
          <div class="sidebar-title">Navigation</div>
          <div class="sidebar-collapse" id="sidebar-collapse" data-bind="click: toggleOpen">
            <i class="fa-solid fa-bars" ></i>
          </div>
      </div>
      <div class="sidebar">
          <div class="sidebar-content">
              <nav class="sidebar_nav" role="navigation">
                  <ul id=sidebar-accordion class="sidebar_nav-main" data-bind="foreach: {data:items}">
                      <li class="sidebar-link dropdown" data-bind="css: {'active': $data.isActive() ? true : false}, attr: { 'data-target': '#collapse' + $index(), 'aria-expanded': false, 'data-toggle': 'collapse' } ">
                          <a href="javascript:void(0)" data-bind="attr: {'href': $data.parent_link}" class="sidebar_main-link">
                              <i data-bind="class: $data.icon"><i data-bind="class: $data.icon2"></i></i>
                              <span class="sidebar-item" data-bind="text: name"></span>
                          </a>
                          <ul class="dropdown-menu sidebar_submenu" data-bind="foreach: $data.children">
                                <li class="dropdown-item sidebar_submenu-item" data-bind="class: $data.className">
                                    <a href="javascript:void(0)" data-bind="attr: { 'href' : $data.link}"><span data-bind="text: name"></span></a>
                                </li>
                          </ul>
                          <div class="sidebar-subchild" id="sidebar-subchild" onclick="event.stopPropagation()">
                            <ul data-parent="#sidebar-accordion" class="collapse sidebar_submenu" data-bind="attr: { id: 'collapse' + $index()}, foreach: $data.children">
                              <li class="sidebar_submenu-item" data-bind="class: $data.isSelectModule">
                                <a target="_self" data-bind="attr: { 'href' : $data.link}"><span data-bind="text: $data.name"></span></a>
                              </li>
                            </ul>
                          </div>
                      </li>
                  </ul>
              </nav>
          </div>
      </div>
    </div>

问题截图

问题截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:55:17