将包裹的元素保持在一起

Fre*_*oot 17 html javascript css

我在HTML中有几个元素,我想在它们换行时保持分组.我认为答案在于一些CSS(或者甚至是JavaScript),但我不确定.例如,我有几个元素,如下所示:

<label A><input A><label B><input B><label C><input C>
Run Code Online (Sandbox Code Playgroud)

用户有时会调整浏览器窗口的大小,我们最终会得到以下结果:

<label A><input A><label B>
<input B><label C><input C>
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,输入B不在其输入元素的旁边.有没有办法将标签和输入分组,以便它们包装在一起?我已经尝试了div并将元素放在一个带有"nowrap"的表中,结果好坏参半.我不介意线条包装,我只需要将标签和输入元素保持在一起.

Ana*_*Ana 15

尝试这样的事情:

<label>First Name:
    <input type="text">
</label>
<label>Last Name:
    <input type="text">
</label>
Run Code Online (Sandbox Code Playgroud)

并设定

label {
    display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)

演示http://dabblet.com/gist/3145028

替代方案:包装都<label><input><div>display: inline-block


小智 6

将所有这些元素放在div中,如下所示:

<div style="white-space: nowrap">
  ...
</div>
Run Code Online (Sandbox Code Playgroud)


Dom*_*Dom 6

也许值得看看你想要保持在一起的每一对周围设置父div - 我知道你说你试过这个但是也给它们一个固定的宽度并显示:inline; 它应该工作

ALSOO包括float:left/right;(只选择一个)这样,如果浏览器窗口太小而无法并排显示它们,它将取代结束对并将其放到下一行但是应该保留所有元素在一起并肩并肩.


Mas*_*aba 6

简单的答案是将元素包装到另一个具有display:inline-block作为样式的元素中.所以...

<span class='wrapper'>
  <span class='left-side'></span>
  <span class='right-side'></span>
</span>
Run Code Online (Sandbox Code Playgroud)

.wrapper {
  display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)