【问题标题】:CSS only dropdown not showing all elements at hover仅 CSS 下拉菜单不显示悬停时的所有元素
【发布时间】:2016-04-24 11:38:29
【问题描述】:

我创建了一个带有溢出的纯 CSS 下拉菜单:隐藏,但我在 Chrome 下遇到了一些问题。当我将鼠标悬停在下拉框上时,最初只出现了一部分元素。将光标向下移动到列表后,其余部分也会出现,但有时在悬停时,稍后出现的其余部分将保留在屏幕上,直到我再次将鼠标悬停在下拉列表上。

.c-dropdown {
    width: 213px;
    position:relative;
    top:23px;
    left:15%;
    display:inline-block;
    overflow:hidden;
    border:1px solid #fb6b1e;
}
.c-dropdown:hover {
    overflow:visible;
}
    .c-dropdown__container {
        width: 100%;
        height:30px;
        position:relative;
    }
        .c-dropdown__list {
            width: 100%;
            list-style:none;
            position:absolute;
            margin: 1px 0 0;
            padding:0;
            z-index:100;
        }
            .c-dropdown__item {
                border-bottom: 1px solid #ccc;
                border-left: 1px solid #ccc;
                border-right: 1px solid #ccc;
                line-height: 30px;
                background:#fff;
            }
            .c-dropdown__item:first-child {
                border:0;
                background:none;
            }
                .c-dropdown__item-link {
                    font-family: "Roboto", sans-serif;
                    font-weight: 400;
                    font-size: 0.938em;
                    width:100%;
                    height:100%;
                    display:inline-block;
                    text-decoration:none;
                    color: #fb6b1e;                    
                }
                .c-dropdown__item .c-dropdown__item-link:before {
                    content:" ";
                    padding-left:10px;
                }                
                .c-dropdown__item:first-child:hover .c-dropdown__item-link {
                    background:none;
                    color:#fb6b1e;
                }
                .c-dropdown__item:hover .c-dropdown__item-link {
                    background:#fb6b1e;
                    color:#fff;
                }
.u-downarrow {	
    display: inline-block;
    height: 10px;
    width: 10px;
    transform: rotate(225deg);
    transform-origin: center center;
    border-top: 1px solid #ccc;
    border-left: 1px solid #ccc;
}
.u-downarrow--dropdown {	
	position: absolute;
	right: 11px;
	top:7px;
}
<div class="c-dropdown">
  <nav class="c-dropdown__container">
    <ul class="c-dropdown__list">
      <li class="c-dropdown__item"><a class="c-dropdown__item-link" href="#">Select</a></li>
      <li class="c-dropdown__item">
        <a class="c-dropdown__item-link" title="Item 0" href="#">Item 0</a>
      </li>
      <li class="c-dropdown__item">
        <a class="c-dropdown__item-link" title="Item 1" href="#">Item 1</a>
      </li>
      <li class="c-dropdown__item">
        <a class="c-dropdown__item-link" title="Item 2" href="#">Item 2</a>
      </li>
      <li class="c-dropdown__item">
        <a class="c-dropdown__item-link" title="Item 3" href="#">Item 3</a>
      </li>
      <li class="c-dropdown__item">
        <a class="c-dropdown__item-link" title="Item 4" href="#">Item 4</a>
      </li>      
    </ul>
    <div class="u-downarrow u-downarrow--dropdown"></div>
  </nav>	
</div>

JSFiddle

我将不胜感激。

【问题讨论】:

    标签: html css overflow dropdown bem


    【解决方案1】:

    它正在 Chrome 上运行。我将鼠标悬停在下拉菜单上,列表框完美出现;当我将鼠标从下拉列表中移开时,列表消失了。在笔记本电脑上试用。

    【讨论】:

    • 这很奇怪,因为我反复遇到这个问题。难道只有我的 Chrome 会导致问题吗?看看我的screenshot
    • 我也没有看到问题,也许可以尝试替代隐藏和显示?
    • 它在我的浏览器 chrome 上完美运行,您无需担心代码,我认为您可能需要升级您的浏览器,这样才能解决问题。
    猜你喜欢
    • 2022-01-20
    • 2013-01-24
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    相关资源
    最近更新 更多