html - 让div在中间填充剩余空间

标签 html css

<分区>

我有这个 HTML 结构(简体)。我想使 Logo 、inputbutton 为:

1) 在标题中垂直对齐

2) Logo 和按钮具有固定大小。我希望这两个元素中间的 input 是它们之间剩余的 width

(Logo在左边,button在右边。Input 然后是中间位的宽度)

然后当窗口调整大小时,input 文本会自动调整大小。

<div class="header">
    <div id="logo">Logo here</div>
    <input type="text"/>
    <div class="button>Button title</div>
</div>

最佳答案

使用 flexbox 你可以做到这一点,

  • display: flex; 应用到父级 (.header) 因此整个容器现在是一个 flex 元素
  • 在父级 (.header) 中使用 align-items:center 来垂直对齐它们,参见更多关于 align-items 的信息
  • 应用 flex:1(flex-grow:1 flex-shrink:1 flex-basis:0) 到 input 以增加剩余空间

.header {
  display: flex;
 /* justify-content: space-between; */  /* this is optional, because input{flex:1} is doing its job */
  align-items:center;
  /*demo*/
  border:1px solid red;
  height:60px;
}

input {
  flex: 1;
  /*demo*/
  margin: 0 10px;
}
<div class="header">
  <div id="logo">Logo here</div>
  <input type="text" />
  <div class="button">Button title</div>
</div>

关于html - 让div在中间填充剩余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46857027/

上一篇:javascript - 我在将英寸转换为厘米的转换表时遇到问题

下一篇:html - CSS block 不适用于 jekyll 下拉导航栏

相关文章:

html - Bootstrap 模态阴影显示在模态上

html - 即使在折叠时也将无序列表设置为内联 *Bootstrap*

javascript - 如何在和 ID 的元素上使用 getElementId

javascript - 验证 javascript 中的有效 html 标签

html - 将表格导航转换为 css 导航布局

html - calc() 在 CSS 中不计算,在浏览器中存在差异

底部的 HTML/CSS 菜单与中间的图像冲突

使用箭头键移动 div 的 Javascript 函数不起作用?

css - 修改颜色 棒棒哒

javascript css3 每 2 秒更改一次背景颜色