html - 下拉菜单中的元素之间存在填充问题

标签 html css

我目前在使用 HTML 和 CSS 创建的下拉导航菜单中遇到问题,但后来当我尝试在 UL 元素列表之间应用填充时,我发现填充在 ex 的所有元素中都是不同的。学生框的所有边都有 1px 的间隙(如果你放大一点你会看到它),列表的其余部分比学生框有更多或更少的填充。

我在下面附上了 CSS 和 HTML 代码的片段:

* {
    margin: 0;
    padding: 0;
}

body {
    background: #34495e;
}

nav {
    width: 100%;
    height: 60px;
    background-color: rgba(49, 45, 45, 0.8);
    text-align: center;
}

nav ul {
    float: left;
}

nav ul li {
    float: left;
    list-style: none;
    position: relative;
}

nav ul li a {
    display: block;
    font-family: sans-serif;
    color: #222;
    font-size: 20px;
    padding: 18px 14px;
    text-decoration: none;
}

nav ul li ul {
    display: block;
    position: absolute;
    background-color: rgba(49, 45, 45, 0.8);
    padding: 1px;
}

nav ul li ul li a {
    padding: 8px 32px;
}

nav ul li a:hover {
    background-color: #2ecc71;
}

nav ul li ul li a:hover {
    background-color: #2ecc71;
}
<html>
    <head>
        <title>Dropdown Menu</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <nav>
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="#">Registration</a>
                    <ul>
                        <li><a href="#">Student</a></li>
                        <li><a href="#">Bus</a></li>
                        <li><a href="#">Route</a></li>
                        <li><a href="#">Driver</a></li>
                    </ul>
                </li>
                <li><a href="#">Contact Us</a></li>
                <li><a href="#">About Us</a></li>
            </ul>
        </nav>
    </body>
</html>

帮助将不胜感激。

最佳答案

请在下拉菜单里添加width: 100%;。喜欢:

* {
    margin: 0;
    padding: 0;
}

body {
    background: #34495e;
}

nav {
    width: 100%;
    height: 60px;
    background-color: rgba(49, 45, 45, 0.8);
    text-align: center;
}

nav ul {
    float: left;
}

nav ul li {
    float: left;
    list-style: none;
    position: relative;
}

nav ul li a {
    display: block;
    font-family: sans-serif;
    color: #222;
    font-size: 20px;
    padding: 18px 14px;
    text-decoration: none;
}

nav ul li ul {
    display: block;
    position: absolute;
    background-color: rgba(49, 45, 45, 0.8);
    padding: 1px;
}
 

nav ul li ul li {
  width: 100%;
}
nav ul li ul li a {
    padding: 8px 32px;
}

nav ul li a:hover {
    background-color: #2ecc71;
}

nav ul li ul li a:hover {
    background-color: #2ecc71;
}
<html>
    <head>
        <title>Dropdown Menu</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <nav>
            <ul>
                <li><a href="index.html">Home</a></li>
                <li><a href="#">Registration</a>
                    <ul>
                        <li><a href="#">Student</a></li>
                        <li><a href="#">Bus</a></li>
                        <li><a href="#">Route</a></li>
                        <li><a href="#">Driver</a></li>
                    </ul>
                </li>
                <li><a href="#">Contact Us</a></li>
                <li><a href="#">About Us</a></li>
            </ul>
        </nav>
    </body>
</html>

关于html - 下拉菜单中的元素之间存在填充问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54019920/

相关文章:

html - 如何在悬停另一个元素时更改一个元素的颜色?

jquery - 如何在 jquery 框内居中标记 i

ios - iPad 设备的不同 CSS 值?

html - 创建页脚 HTML/CSS - 不工作

html - 自定义 ol li 缩进

html - 将按钮保持在与窗口大小无关的固定位置

html - 导航栏突然在顶部而不是底部 HTML

javascript - jQuery.slideDown 立即完成

javascript - DHTMLX 调度程序与 Bootstrap 冲突

javascript - 突出显示 TextArea 中的特定文本