html - 在第一行显示两个元素,在下一行显示第三个元素

标签 html css flexbox

我试图在一行上放置两个元素,然后在下一行上放置第三个元素。我偶然发现this answer ,但答案不适用于 input type="text"输入位于其自己的行上,这导致每个元素都有自己的行。

为什么它不起作用,如何将前两个元素放在一行上,将第三个元素放在第二行上?

Working JSFiddle

Not Working JSFiddle

#wrapper {
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
#wrapper > * {
  flex: 1 0 50%;
}
#wrapper > *:last-child {
  flex: 0 1 100%;
}
<div id="wrapper" style="background-color: rgb(144, 248, 144);">
  <label id="first">First Text</label>
  <input type="text" id="second">
  <span id="third">Third Text</span>
</div>

最佳答案

input 会中断到下一行,因为它具有由用户代理样式表应用的 2px 边框。

enter image description here

要将输入保留在第一行,您可以指定:

input { border-width: 0; }

DEMO

或者

更改 CSS 框模型以使内边距和边框成为宽度声明的一部分:

html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}

DEMO

关于html - 在第一行显示两个元素,在下一行显示第三个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335017/

相关文章:

javascript - 将鼠标悬停在第二列上时更改表中第一列的 CSS 样式

html - 如果行低于特定高度,则固定位置

javascript - 动画无法按设置运行

javascript - 加快图像背景的页面加载

javascript - 在 Javascript 中动态添加新表行

css - 使用 ng-class 指令的 ng-animate

jquery - 而不是.resize?

html - CSS边距: 0 auto; not working in Safari Browser

html - 这种响应式布局可以使用 Flexbox CSS 吗?

html - 如何在浏览器中进行多级高度拉伸(stretch)?