javascript - CSS/JS - 包装元素的水平对齐

标签 javascript css html flexbox

我在创建一组带有标签的输入的响应式布局时遇到问题。 当有足够的水平空间时,我希望它们保持在一行,否则换行但保持水平对齐。

让我们在图片上显示它。

这就是我想要的:

enter image description here

这是我到目前为止得到的: JSFiddle

蓝色元素始终具有相同的宽度,因此不是问题。 橙色元素具有不同的宽度,我希望它们水平对齐。 我无法将它们设置为相同的宽度,因为这样它们在单行中会浪费空间。

到目前为止我尝试过的:

  1. 显示:表格单元格

    问题是它无法换行。

  2. 容器:显示:flex; flex-wrap: wrap; 子项向右对齐。

    问题是容器没有缩小到子级宽度 当它们包裹时,所以整个组移到了右侧,这不是 我想要什么。

  3. 使用JS设置橙色元素等宽。

    问题是只有当线条是时它们才应该具有相等的宽度 包装,我没有找到可靠的方法来检测它是否是 包装与否。

欢迎

任何解决方案。我不介意它是否不是纯 CSS 解决方案,我对这样的解决方案的存在失去了希望。

编辑:与this question的区别是元素在行之间和一行内具有不同的宽度。

最佳答案

试试这个:

label{display:inline-block;width:130px;text-align:right;}
div.inner{display:inline-block;}
<div class="inner">

<label>Please Enter Name:</label><input type="text"> 

</div> 

<div class="inner"> 

<label> Address:</label><input type="text"> 

</div> 

结果:

情况 1:全宽可用时

enter image description here

情况2:宽度缩小时

enter image description here

关于javascript - CSS/JS - 包装元素的水平对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070093/

相关文章:

javascript - 如何在 JavaScript 中不使用全局变量来生成排列对?

javascript - 如何使 javascript scrollIntoView 平滑?

HTML5 音频元素侵犯版权?

html - 如何在英雄/部分视频上显示文本

javascript - 一旦附加到浏览器中的根对象,引用时是否必须使用根前缀?

javascript - 浏览器缓存 - 如果缓存了 javascript 文件,为什么我会看到重复的 http 请求?

html - 如何组合/管道多个选择器?

html - @media 查询不适用于移动设备

html - HTML 上的 Excel 预览

javascript - D3.js:折线图中水平和垂直焦点线(十字线)的位置错误