在导航悬停上添加底部边框而不更改下方所有内容的位置

adding bottom border on navigation hover without changing position on everything below

我想让我的导航在悬停时有底部边框,但它会将我的所有内容向下移动 3 像素。如何在不移动所有内容的情况下使其工作。

CSS 导航:

nav {
    width: 80%;
    margin: 0 auto;

}
nav ul {
    list-style-type: none;
}
nav ul li {
    float: left;
    width: 19.7%;
    background-color: #e88610;
    text-align: center;
    border-right: 3px solid gray;
    border-top: 1px solid gray;
}
nav ul li:last-child {
    border-right: none;
    border-bottom-right-radius: 5px;
}
nav ul li:first-child {
    border-bottom-left-radius: 5px;
}
nav ul li a {
    text-decoration:none;
    display: block;
    padding: 10px 0px;
    color: white;
}
nav ul li a:visited {
    color: white;
}
nav ul li a:hover{
    background-color: orange;
    border-bottom: 3px solid gray;
}

CSS 以下内容:

#novi_clanak {
    background-color: rgba(255, 255, 255, 0.65);
    width: 100%;
    padding-bottom: 40px;
    margin-top:35px;
}

添加到导航 css

position: fixed;

本质上,通过添加边框,您将导航扩展了 3 像素。查看 http://www.w3schools.com/css/css3_box-sizing.asp 中 CSS 的 box-sizing 属性。您希望 nav ul li a:hover 拥有 box-sizing: border-box;。这会将底部边框的 3px 考虑到元素高度。

或者,将 nav ul li a:hover 高度缩短 3px(将其设置为 39px)。