【问题标题】:Forcing label to flow inline with input that they label强制标签与他们标记的输入内联流动
【发布时间】:2026-01-10 23:00:02
【问题描述】:

我需要标签与他们正在标记的输入字段保持在同一行。我希望这些元素在窗口调整大小时像往常一样流动,我只希望标签贴在它们标记的输入的左侧。我该怎么做?有什么想法吗?

<label for="id1">label1:</label>
<input type="text" id="id1"/>
<label for="id2">label2:</label>
<input type="text" id="id2"/>

回答:Josiah Ruddell 的回答是正确的,使用 span 而不是 div 给了我正确的行为。谢谢!

<span style="white-space:nowrap">
    <label for="id1">label1:</label>
    <input type="text" id="id1"/>
</span>
<span style="white-space:nowrap">
    <label for="id2">label2:</label>
    <input type="text" id="id2"/>
</span>

【问题讨论】:

    标签: css input label


    【解决方案1】:

    将它们都放在div 中,不带包装。

    <div style="white-space:nowrap">
        <label for="id1">label1:</label>
        <input type="text" id="id1"/>
    </div>
    

    【讨论】:

    • 这在我尝试时不起作用。它使它根本不包裹......当窗口足够大时,我仍然希望它包裹。
    • 哦,但是这种方法可以与 SPAN 一起使用!所以我真正要找的是:
    【解决方案2】:

    input 放入标签中,并丢弃for 属性

    <label>
      label1:
      <input type="text" id="id1" name="whatever" />
    </label>
    

    当然,如果你想给文本设置样式怎么办?只需使用span

    <label id="id1">
      <span>label1:</span>
      <input type="text" name="whatever" />
    </label>
    

    【讨论】:

    【解决方案3】:

    你为什么不直接使用:

    label {
        display: block;
        width: 50px;
        height: 24px;
        float: left;
    }
    

    【讨论】:

    • jsFiddle 说:错误 404 我们真的很抱歉,但没有这样的页面。
    【解决方案4】:

    如果您希望它们成为段落,请使用它。

    <p><label for="id1">label1:</label> <input type="text" id="id1"/></p>
    <p><label for="id2">label2:</label> <input type="text" id="id2"/></p>
    

    &lt;label&gt;&lt;input&gt; 都是段落和流式内容,因此您可以作为段落元素和块元素插入。

    【讨论】:

      【解决方案5】:
      <style>
      .nowrap {
          white-space: nowrap;
      }
      </style>
      
      ...
      
      <label for="id1" class="nowrap">label1:
          <input type="text" id="id1"/>
      </label>
      

      将您的输入包装在标签标签中

      【讨论】:

        【解决方案6】:

        http://jsfiddle.net/jwB2Y/123/

        以下 CSS 类强制标签文本内联流动并在其长度超过标签的最大长度时被剪裁。

        .inline-label { 
            white-space: nowrap;
            max-width: 150px;
            overflow: hidden;
            text-overflow: ellipsis;
            float:left;     
            }
        

        HTML:

        <div>
            <label for="id1" class="inline-label">This is the dummy text i want to display::</label>
            <input type="text" id="id1"/>
        </div>
        

        【讨论】:

          【解决方案7】:

          我做了什么让输入不占用整行,并且能够将输入放在一个段落中,我使用了一个 span 标签并显示到 inline-block

          html:

          <span>cluster:
                  <input class="short-input" type="text" name="cluster">
          </span>
          

          css:

          span{display: inline-block;}
          

          【讨论】:

          • 您可以放一些快照,以便我们了解您想要实现的目标。
          最近更新 更多