【问题标题】:How do I left align these Bootstrap form items?如何左对齐这些 Bootstrap 表单项?
【发布时间】:2012-12-25 07:51:40
【问题描述】:

我是第一次使用 Bootstrap,在将这个表单水平对齐到左侧时遇到了很多麻烦。

列表项应该是水平的,但我希望控制标签(表单标签的 Bootstrap 类)都位于向左浮动的相同位置。

表单包含在一个跨度为 7 的 div 中,因为我的网站是两列 - 7 列和 4 列。

下面是我的 HTML。如果您查看此页面http://accounts.tao.tw.shuttle.com/examples_bootstrap/basecss/forms 上的“水平表单”下,您会看到标签左对齐,但不是绝对左对齐,因此标签的开头垂直位于同一位置。

<form class="form-horizontal">
    <div class="control-group">
        <label class="control-label" for="inputSaving">What are you saving for?</label>
        <div class="controls">
            <input class="span4" type="text" id="inputSaving" placeholder="e.g. Swimming Lessons, Birthday Party, College Fund, etc.">
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="description">Add a short description</label>
        <div class="controls">
            <textarea class="span4" rows="4" placeholder="Describe in your own words the saving goal for this piggybank"></textarea>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="categoryselect">Choose a Category</label>
        <div class="controls">
            <select class="span4">
                <!-- Add some CSS and JS to make a placeholder value-->
                <option value="Kittens">Kittens</option>
                <option value="Keyboard Cat">Keyboard Cat</option>
                <option value="Twitter Bird">Twitter Bird</option>
            </select>
        </div>
    </div>
    <div class="control-group">
        <label class="control-label" for="goal">Your Saving Goal</label>
        <div class="controls">
            <input type="text" class="span4" id="goal">
        </div>
    </div>
    <button class="btn btn-large btn-primary" type="button">Submit</button>
</form>

【问题讨论】:

  • 为什么这个问题没有标记为正确的答案?

标签: html css forms twitter-bootstrap


【解决方案1】:

如果您说您的问题是如何左对齐表单标签,看看这是否有帮助:
http://jsfiddle.net/panchroma/8gYPQ/

尝试在 CSS 中更改文本左/右对齐

.form-horizontal .control-label{
    /* text-align:right; */
    text-align:left;
    background-color:#ffa;
}

【讨论】:

  • 更新了html并修复了提交按钮的对齐方式:jsfiddle.net/n3f25Lkd
  • 我不建议直接修改框架的源代码,特别是如果您希望能够使其保持最新状态 - 也就是说,除非您愿意分叉存储库并将上游代码合并回来在。
  • 同意修改框架源代码@djule5 不是一个好主意,我建议将以上内容添加到站点的 CSS 中,以便它覆盖 Bootstrap 样式。然后你可以更新 Bootstrap 并且不会丢失自定义,这有意义吗?
【解决方案2】:

text-align:left; 对我不起作用,但通过添加 display:flex; 我能够将标签放在左侧。

【讨论】:

    【解决方案3】:

    只需将style="text-align: left" 添加到您的标签即可。

    【讨论】:

    • 哇!不惜一切代价避免这样的内联样式!虽然可行,但这是一种不好的做法,将样式嵌入到 html 中混淆了数据 (html) 和表示规则 (css) 之间的清晰分隔。
    【解决方案4】:

    我遇到了完全相同的问题。我在 bootstrap.min.css 中发现了这个问题。您需要更改标签: label {display:inline-block;}label {display:block;}

    【讨论】:

      【解决方案5】:

      只有我的两分钱。如果您使用的是 Bootstrap 3,那么我只需在您自己网站的样式表中添加一个额外的样式,该样式表控制 control-labeltext-left 样式。

      如果您要将text-left 添加到标签中,默认情况下会有另一种样式覆盖此.form-horizontal .control-label。因此,如果您添加:

      .form-horizontal .control-label.text-left{
          text-align: left;
      }
      

      然后将内置的text-left 样式正确应用于标签。

      【讨论】:

      • 或者你会说“左”的答案...哈哈
      • 5 年后我真的相信这应该被标记为正确答案。
      • @AntonioGonzález 谢谢! 5 年前真是太疯狂了!
      【解决方案6】:

      "pull-left" 是你需要的,看起来你正在使用 Bootstrap 2,我不确定它是否可用,考虑 bootstrap 3,除非它是一个巨大的返工! ... 对于 Bootstrap 3,但您需要确保每行也有 12 列,否则您会遇到问题。

      【讨论】:

      • “但你需要确保每行也有 12 列,否则你会遇到问题”——不正确。如果您定义的列少于 12 个,那么您的数据将仅使用您定义的列,其余列将为空白。所以,如果你定义一个 col-x-4、col-x-5、col-x-1,那么剩下的 2 列将是空的,一切都应该正常工作。 (注意,如果定义超过 12 列,那么第 12 列之后的所有内容都将换行到下一行)
      【解决方案7】:

      不要更改原始引导 css 类,而是创建一个将覆盖默认样式的新 css 文件。

      确保在包含 bootstrap.css 文件后包含新的 css 文件。

      在新的css文件中做

      .form-horizontal .control-label{
         text-align:left !important; 
      }
      

      【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 2014-04-30
      • 2023-01-26
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2013-09-07
      • 2022-01-17
      相关资源
      最近更新 更多