html - 下拉子菜单 HTML 和 CSS(摇动)

标签 html css menu submenu

我需要创建一个带有子菜单的非常简单的响应式菜单。我目前遇到的问题是我的子菜单“抖动”,我不明白为什么。

谢谢!

这是我的HTML

<header>
    <a href="inicio.html" id="logo">
    </a>
    <nav>
        <a href="#" id="menu-icon"></a>
        <ul>
            <li><a href="#">Nosotros</a></li>

            <li><a href="#">Productos</a>
                <ul class="hidden">
                    <li><a href="#">Sub 1</a></li>
                </ul>
            </li>


            <li><a href="#">Soluciones</a></li>
            <li><a href="#">Servicios</a></li>
            <li><a href="#">Contacto</a></li>
        </ul>
    </nav>
</header>

这是我的 CSS:

header {
background-color: #102a42;
background-image: linear-gradient(0deg, #102a42 0%, #171c31 100%);
width: 100%;
height: auto;
position: fixed;
top: 0;
left: 0;
z-index: 100; 
}

#logo {
margin: 20px;
float: left;
width: 230px;
height: 46px;
background: url(../images/logo-header.png) no-repeat center;
display: block;
}

nav {
float: right;
padding: 10px 20px 0 0;
}

#menu-icon {
display: hidden;
width: 40px;
height: 40px;
background: url(../images/menu-icon.png) center;
}


ul{
list-style: none;
font-size: 1em;
}

li {
display: inline-block;
float: left;
padding: 10px;
}

li a {
font-family: 'Roboto', sans-serif;
font-weight: 300;
text-decoration: none;
color: #fff;
font-size: 1em;
}

li a:hover {
color: #00BFA1;
}


li ul {
display: none;
}

li ul li {
display: block;
float: none;
}


li ul li a {
width: auto;
min-width: 200px;
padding: 0 20px;
}

ul li a:hover + .hidden, .hidden:hover {
display: block;
}

非常感谢任何帮助,我需要在今天之前解决这个问题! :) 我还不能将我的网站上传到任何地方,所以我没有办法向您展示发生了什么。

最佳答案

在您的最后一个 CSS 规则中,您可以将 anchor 标记上的悬停更改为 li,这样它就不会跳转。另一种方法是向 anchor 添加填充,这样您就可以将鼠标悬停在 anchor 上。希望这可以帮助。 Fiddle

header {
background-color: #102a42;
background-image: linear-gradient(0deg, #102a42 0%, #171c31 100%);
width: 100%;
height: auto;
position: fixed;
top: 0;
left: 0;
z-index: 100; 
}

#logo {
margin: 20px;
float: left;
width: 230px;
height: 46px;
background: url(../images/logo-header.png) no-repeat center;
display: block;
}

nav {
float: right;
padding: 10px 20px 0 0;
}

#menu-icon {
display: hidden;
width: 40px;
height: 40px;
background: url(../images/menu-icon.png) center;
}


ul{
list-style: none;
font-size: 1em;
}

li {
display: inline-block;
float: left;
padding: 10px;
}

li a {
font-family: 'Roboto', sans-serif;
font-weight: 300;
text-decoration: none;
color: #fff;
font-size: 1em;
}

li a:hover {
color: #00BFA1;
}


li ul {
display: none;
}

li ul li {
display: block;
float: none;
}


li ul li a {
width: auto;
min-width: 200px;
padding: 0 20px;
}

ul li:hover a + .hidden, .hidden:hover {
display: block;
}
<header>
    <a href="inicio.html" id="logo">
    </a>
    <nav>
        <a href="#" id="menu-icon"></a>
        <ul>
            <li><a href="#">Nosotros</a></li>

            <li><a href="#">Productos</a>
                <ul class="hidden">
                    <li><a href="#">Sub 1</a></li>
                </ul>
            </li>


            <li><a href="#">Soluciones</a></li>
            <li><a href="#">Servicios</a></li>
            <li><a href="#">Contacto</a></li>
        </ul>
    </nav>
</header>

关于html - 下拉子菜单 HTML 和 CSS(摇动),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49175570/

相关文章:

html - 让每一节课都独一无二

seo - Joomla:在菜单层次结构中jroute和导航备份

表格问题的HTML/CSS背景

html - Wordpress 管理员侧边菜单搞砸了

css - 使用 SyntaxHighlighter Evolved 和 Virtue 主题,代码行从 Wordpress 中的编号向下移动了一位

javascript - 即使更改来源后,旧图像也会立即显示

javascript - jQuery 和 CSS 菜单帮助!

delphi - TMainMenu 动态构建菜单项

javascript - 是否可以在 v-html 指令中放入指令?

html - 指定将鼠标悬停在元素上时工具提示的位置