如何让我的 DIV 垂直对齐到顶部?

How do I get my DIVs to vertically align to the top?

我无法让我的一个 DIV 垂直对齐到将成为导航部分的顶部。我定义了这种风格......

#navbar {
    width: 100%; 
    font-family: Arial; 
    vertical-align: top; 
}

这是我的导航栏后面的 HTML …

<div id="navbar">
    <div id="leftNavSection">
    <img alt="Logo" width="300" src="/assets/main_logo-791a416e4f99d38a339debb8dcebd7361d4172919425ace42ba2ce90336218e2.png">        
    </div>
    <div id="rightNavSection">
    Logged in as M. Bison 
    <a href="/users/edit">Edit</a>
    <a rel="nofollow" data-method="delete" href="/logout">Log Out</a>
    </div>
</div>

但是正如您从我的 Fiddle — https://jsfiddle.net/msynjppa/ 中看到的那样,右侧部分没有垂直对齐到顶部。感谢您的帮助,

如果你想并排放置两个 div,那么要么使用 float,要么使用 display: inline-block

在你的例子中,我已经为 #leftNavSection

定义了 float: left;

代码片段

#navbar {
  width: 100%;
  font-family: Arial;
  vertical-align: top;
  background-color: red;
}
#leftNavSection {
  float: left;
}
#rightNavSection {
  float: right;
}
#navbar::after,
#navbar::before {
  content: "";
  display: table;
}
#navbar::after {
  clear: both;
}
<div id="navbar">
  <div id="leftNavSection">
    <img alt="Logo" width="300" src="/assets/main_logo-791a416e4f99d38a339debb8dcebd7361d4172919425ace42ba2ce90336218e2.png">
  </div>
  <div id="rightNavSection">
    Logged in as M. Bison
    <a href="/users/edit">Edit</a>
    <a rel="nofollow" data-method="delete" href="/logout">Log Out</a>
  </div>
</div>

简单地将您的图片向左浮动。图像是一个内联元素,占据了整个线条的宽度。您的 div 是浮动的,导致它自行折叠,但被内联元素阻止上升到顶部。

删除适用于内联元素的 vertical-align:top 原因,而不是块级元素,例如 div.

正如我看到您已经在 rightNavSection 上使用 float:right,我继续将 float:left 添加到您的 leftNavSection,解决了这个问题。这是 JSFiddle,这是 CSS,我唯一改变的是:

#navbar {
    width: 100%; 
    font-family: Arial; 
    vertical-align: top; 
    background-color: red;
    display: inline-block;
}

#leftNavSection {
  float: left;
}

#rightNavSection {
   float:right;
}

如您所见,我还向 navbar 的 CSS 添加了 display:inline-block 以使其正确显示。没有它,红色背景不会显示。

我建议使用 flex-box,因为这是最简单的方法。

#navbar {
  width: 100%;
  font-family: Arial;
  background-color: red;
  display: flex;
  justify-content: space-between;
}

#leftNavSection,
#rightNavSection {
  background-color: yellow;
}
<div id="navbar">
  <div id="leftNavSection">
    <img alt="Logo" width="300" src="/assets/main_logo-791a416e4f99d38a339debb8dcebd7361d4172919425ace42ba2ce90336218e2.png">
  </div>
  <div id="rightNavSection">
    Logged in as M. Bison
    <a href="/users/edit">Edit</a>
    <a rel="nofollow" data-method="delete" href="/logout">Log Out</a>
  </div>
</div>

你也可以用这个

#leftNavSection,
#rightNavSection
        {
            display: inline-block;
        }