html - 垂直对齐未知高度的 float 元素

标签 html css css-float vertical-alignment

我想创建一个包含两列的标题,一列用于“品牌名称”,一列用于按钮,例如登录、注册等。

但是我不知道如何将它们垂直居中放置在页眉中,因为按钮比品牌名称高得多。

我也已经偶然发现了 this question ,但是那里建议的解决方案并没有解决我的问题。

到目前为止我得到了什么:

header {
  border: 1px dotted magenta;
}
header:after {
  content: "";
  display: table;
  clear: both;
}

#left {
  background-color: #cfc;
  float: left;
  vertical-align: middle;
}
#right {
  background-color: #ccf;
  float: right;
  vertical-align: middle;
}

button {
  padding: 8px 10px;
}
<header>
  <div id="left">
    My brand name
  </div>
  <div id="right">
    <button>Button 1</button>
    <button>Button 2</button>
    <button>Button 3</button>
  </div>
</header>

如您在上面的代码片段中所见,文本 My brand name 与顶部垂直对齐。但是,期望的结果是文本在标题内垂直居中。我怎样才能做到这一点?

最佳答案

你可以用 Flexbox 做到这一点,你只需要在 header 上使用 align-items: center 来垂直对齐。

header {
  border: 1px dotted magenta;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#left {
  background-color: #cfc;
}
#right {
  background-color: #ccf;
}
button {
  padding: 8px 10px;
}
<header>
  <div id="left">
    My brand name
  </div>
  <div id="right">
    <button>Button 1</button>
    <button>Button 2</button>
    <button>Button 3</button>
  </div>
</header>

关于html - 垂直对齐未知高度的 float 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46632226/

相关文章:

html - 如何将vue.js中video元素的paused属性绑定(bind)到可以显示/隐藏播放按钮的函数

input - &lt;input type ="submit"/> 和 &lt;input type ="text"/> 之间的盒模型不一致

css - MaterializeCSS - 图标和字体不对齐

css - 无法让 CSS 替换表格(2 个单元格,右侧宽度 = 1)

html - 按顺序 float 5个不同大小的盒子,并使用CSS制作填充包装

CSS: float 和定位

javascript - 如何让我的网站预加载器在消失前持续 3 秒,即使页面已加载(至少停留 3 秒)

css - 如何在 Canvas CSS 上叠加一个 div

javascript - html中Select元素的事件顺序

javascript - 如何只点击模态外观而不点击对话框/内容?