html - 子元素的边框影响父元素的div大小

标签 html css

我这样做是为了当我将鼠标悬停在菜单中的某个元素时,它下面会出现一条小线:border-bottom: 2px;。现在,当我将元素悬停在菜单中时,父元素(在本例中为标题)也会在底部增长 2px

我的 HTML 代码:

<div class="header"> 

    <nav class="navigation_menu">

            <ul class="navigation_ul">

                <a href="#"><li>Lorum</li></a>
                <a href="#"><li>Ipsum</li></a>
                <a href="#"><li>Lorpsum</li></a>
                <a href="#"><li>Ipum</li></a>
                <a href="#"><li>Nadoa</li></a>

            </ul>

    </nav>

</div>

我的 CSS 代码:

body {
    background:f5f5f5;
    margin: 0px;
    padding: 0px;
    font-family: roboto;
}

/** Text Style **/

a {
    text-decoration: none;
    color: inherit;
}

/** Header Style **/

.header {
    background: #607d8b;
    margin: 0px;
    padding: 10px;
    padding-bottom: 50px;
    color: white;
}

/** Navigation Menu Style **/

.navigation_menu ul {
    margin: 0px;
    padding: 0px;
    overflow: hidden;
}

.navigation_menu li {
    font-size:18px;
}

.navigation_menu li:hover {
    border-bottom: 2px solid white;
}

.navigation_menu ul li {
    display: inline-block;
    padding: 0px 0px;
}

这是一个示例: http://codepen.io/anon/pen/rVjJqW

希望能在这里找到答案!提前致谢!

最佳答案

问题是边框占用了一些空间,所以父级变大了。

相反,您可以考虑设置透明边框并在悬停时更改颜色:

.navigation_menu li {
  border-bottom: 2px solid transparent;
}
.navigation_menu li:hover {
  border-bottom-color: white;
}

/** General Style **/
body {
  background: f5f5f5;
  margin: 0px;
  padding: 0px;
  font-family: roboto;
}

/** Text Style **/
a {
  text-decoration: none;
  color: inherit;
}

/** Header Style **/
.header {
  background: #607d8b;
  margin: 0px;
  padding: 10px;
  padding-bottom: 50px;
  color: white;
}

/** Navigation Menu Style **/
.navigation_menu ul {
  margin: 0px;
  padding: 0px;
  overflow: hidden;
}
.navigation_menu li {
  font-size:18px;
  border-bottom: 2px solid transparent;
}
.navigation_menu li:hover {
  border-bottom-color: white;
}
.navigation_menu ul li {
  display: inline-block;
  padding: 0px 0px;
}
<div class="header"> 
  <nav class="navigation_menu">
    <ul class="navigation_ul">
      <a href="#"><li>Lorum</li></a>
      <a href="#"><li>Ipsum</li></a>
      <a href="#"><li>Lorpsum</li></a>
      <a href="#"><li>Ipum</li></a>
      <a href="#"><li>Nadoa</li></a>
    </ul>
  </nav>
</div>

关于html - 子元素的边框影响父元素的div大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550192/

相关文章:

css - 更改 iphone 事件链接的颜色

javascript - 使用JS向文本字段添加字符

javascript - 在 HTML5/CSS3/Javascript 应用程序中使用 SVG 图像的首选方式是什么?

css - 删除了标题菜单但空间仍然存在?

javascript - jQuery 在鼠标移出时处理 hover() 和未完成的动画

html - 有没有办法把不同父元素的伪元素堆叠起来?

html - CSS 在提交之前不会对齐 Div

html - Tumblr 提问框显示互动

html - 相对于图像定位文本

php - 发生事情时如何使用php脚本,ajax?