如何在父 div 的一行上放置多个输入? [复制]

Posted

技术标签:

【中文标题】如何在父 div 的一行上放置多个输入? [复制]【英文标题】:How to fit a number of inputs on one line in parent div? [duplicate] 【发布时间】:2018-08-22 04:31:37 【问题描述】:

我正在尝试将 5 个输入放在一行上。很简单,我想。我有一个父 div,它的左右两边都有一些边距。我在里面放入了 20% 宽度的输入(5 x 20 = 100%)。但是最后一个输入到底部,没有理由?有人知道为什么以及如何解决这个问题吗?

<body style="background: orange;">
  <div style="margin-left:10px; margin-right:10px;">	
    <form>
      <input style="width: 20%; padding:0; margin:0;" type="text">
      <input style="width: 20%; padding:0; margin:0;" type="text">
      <input style="width: 20%; padding:0; margin:0;" type="text">
      <input style="width: 20%; padding:0; margin:0;" type="text">
      <input style="width: 20%; padding:0; margin:0;" type="text">
    </form>
  </div>
</body>

【问题讨论】:

边框和空白 【参考方案1】:

我建议使用 flexbox

form 
  display: flex;


input 
  flex: 1;
  min-width: 0;
<form>
  <input type="text">
  <input type="text">
  <input type="text">
  <input type="text">
  <input type="text">
</form>

为什么您的示例不起作用是因为:

&lt;input&gt; 是内联级别,它还具有从浏览器默认样式表设置的默认填充和边框。

输入框之间也有空白,它们也会被渲染。

要使用原始方法修复它,您可以这样做:

form 
  font-size: 0; /* remove white space */


input 
  font-size: 16px; /* reset font size */
  width: 20%;
  box-sizing: border-box; /* make border and padding part of width and height */
<form>
  <input type="text">
  <input type="text">
  <input type="text">
  <input type="text">
  <input type="text">
</form>

您还可以浮动输入框,这样空白就不会被渲染。

form:after  /* clear floats */
  content: "";
  display: table;
  clear: both;


input 
  float: left;
  width: 20%;
  box-sizing: border-box;
<form>
  <input type="text">
  <input type="text">
  <input type="text">
  <input type="text">
  <input type="text">
</form>

【讨论】:

虽然这是在现代网络中如何做到这一点的最佳答案,但如果您还解释了为什么他的方式不起作用,它可能对提问者有用。 (例如,因为逻辑上它似乎像 5x20%=100% 但实际上不是。) 我同意 Roddy 的观点;)因为我想这对他来说会有点复杂,因为他无法看到简单的东西,比如边框/空白 it also has default padding --> 特别是边框,因为他已经删除了填充 谢谢!我的问题由此解决!你解决了我的头痛:) 好了各位,已经更新了,只是需要一点时间来写。

以上是关于如何在父 div 的一行上放置多个输入? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的 display:flex (css) 限制为每行 2 个 div? [复制]

如何在父 div 中设置不透明度而不影响子 div? [复制]

jQuery 可拖动,放置在父 div 之外时的事件

将多个元素同时放置到一行

如何在移动设备中并排放置两个绝对定位的div? [复制]

为啥当我在另一个 div 的 div 上放置一个 margin-top 时,BODY 也会接受它? [复制]