html - 子导航 css- 在悬停位置显示

标签 html css

我正在用子导航做导航栏,我从下面的代码得到的结果是当我悬停主链接时,子菜单没有出现在主链接的正下方。如果您单击产品链接,您可以看到它位于主页链接下,我希望产品子菜单显示在产品链接下,并在产品中 p 开始的位置对齐。 2.也有人可以告诉我为什么有子菜单的链接在下一个链接之间创建空间。在此示例中,主页和产品之间有一个空格,但联系我们和付款之间没有空格。无论主菜单是否包含子菜单,如何忽略链接之间的空格?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="EN" dir="ltr">
<head profile="http://gmpg.org/xfn/11">
<title></title>
<link rel="stylesheet" href="navigation.css" type="text/css">
<!-- <link rel="stylesheet" href="navi.css" type="text/css"> -->
</head>
<body>
    <div class="navigation">
        <ul>
            <li>
                <a href="#">Home</a>
                <ul>
                    <li><a href="#">Hello</a></li>
                    <li><a href="#">Hi</a></li>
                    <li><a href="#">About us</a></li>
                </ul>
            </li>
            <li><a href="new  2.html">Products</a>
                <ul>
                    <li><a href="#">Printing</a></li>
                    <li><a href="#">Scanning</a></li>
                </ul>
            </li>
            <li><a href="sidebarright.html">Contact</a></li>
            <li><a href="sidebarright.html">Payment</a></li>
        </ul>
    </div>
</body>
</html>

CSS:

.navigation{ width:400px;margin:0; padding:0;}
.navigation li{
    display:inline; 
}

.navigation li a{
    color:white;
    padding:.2em 1em;
    background-color:black;
    text-decoration:none;
    font-size:20px;
    background-color:black; 
    border-right:1px white solid;
}

.navigation li a:hover{background-color:#eee;border-top:2px solid #ddd;color:#333;}
.navigation li ul {
    position: absolute; 
    display: none;
    width: inherit;

 }
.navigation li:hover ul {
    display:block; 
    width:100px;
    margin: 4px 0 0 -20px;  
}
.navigation li:hover ul li{
    position: relative;       
    list-style-type:none;
    float:left;
}  
.navigation li:hover ul li a{
    display:block;
    width:100px;
    float:left;
    color:red; 
    padding:.2em 1em;
    background-color:#eee; 
    border-bottom:thin black solid;
}

最佳答案

position:relative 添加到您的 li 中,然后为子菜单赋予 left 值,以便子菜单位于正确的父菜单下。

此外,如果您不希望菜单项之间有空格,请在 li 上使用 float:left 而不是 display:inline。你仍然可以看到一个小的空白区域,那就是你在 .navigation li a

上添加的 border-right

https://jsfiddle.net/hd23dhab/2/

关于html - 子导航 css- 在悬停位置显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30120766/

相关文章:

html - 如何解决 Joomla 站点在 Chrome/IE 和 Firefox 中的数字位置问题

javascript - 按隐藏输入对表进行排序

html - Flex 列子项溢出高度

html - 如果指定的字体粗细不可用,则使用下一种字体

html - 向左浮动和向右浮动不起作用 + 位于第一个 UL 元素下的子菜单?

html垂直对齐垂直菜单中的文本

html - 如何在CSS中修改推特小部件

html - 如何在此 css 布局中均匀对齐左右内容

javascript - 我可以分别设置不同的无序列表项的样式吗?

html - 文本链接通过缩放超出边界 block