2015-05-03 142 views
1

我對使用Bootstrap很陌生,並且在嘗試在同一行上有一個標籤,一個文本框,一個標籤和一個文本框時沒有太大差距,並且使狀態TextBox和Zip文本框與其他文本框排隊,我似乎無法讓我的提交按鈕行正確either..Here是截圖如何在兩個標籤和兩個文本框之間沒有間距地橫向排列?

Some controls not lined up properly and there is a gap

這一切的標記是

<body> 
<form id="form1" runat="server"> 
    <div class="form-horizontal"> 

     <h4>Please add your information</h4> 
     <hr /> 
     <asp:ValidationSummary runat="server" CssClass="text-danger" /> 
     <div class="form-group form-horizontal col-md-8"> 
      <asp:Label ID="lblName" runat="server" AssociatedControlID="txtName" Text="Name" CssClass="col-md-2 control-label"></asp:Label> 
      <div class="col-md-6"> 
       <asp:TextBox ID="txtName" runat="server" CssClass="form-control"></asp:TextBox> 
      </div> 
      <br /> 
      <br /> 
      <asp:Label ID="lblLastName" runat="server" AssociatedControlID="txtLastName" Text="Last Name" CssClass="col-md-2 control-label"></asp:Label> 
      <div class="col-md-6"> 
       <asp:TextBox ID="txtLastName" runat="server" CssClass="form-control"></asp:TextBox> 
      </div> 
      <br /> 
      <br /> 
      <asp:Label runat="server" AssociatedControlID="Address1" CssClass="col-md-2 control-label" Text="Address1"></asp:Label> 
      <div class="col-md-6"> 
       <asp:TextBox runat="server" ID="Address1" CssClass="form-control" /> 
      </div> 
      <br /> 
      <br /> 
      <asp:Label runat="server" AssociatedControlID="Address2" CssClass="col-md-2 control-label" Text="Address2"></asp:Label> 
      <div class="col-md-6"> 
       <asp:TextBox runat="server" ID="Address2" CssClass="form-control" /> 
      </div> 
      <br /> 
      <br /> 
      <asp:Label ID="lblCity" runat="server" AssociatedControlID="txtCity" Text="City" CssClass="col-md-2 control-label" Font-Bold="true"></asp:Label> 
      <div class="col-md-6"> 
       <asp:TextBox runat="server" ID="txtCity" CssClass="form-control" /> 
      </div> 
      <br /> 
      <br /> 
      <div class="form-group"> 
       <asp:Label ID="lblState" runat="server" AssociatedControlID="txtState" Text="State" CssClass="col-md-2 control-label" Font-Bold="true"></asp:Label> 
       <div class="col-md-2"> 
        <asp:TextBox runat="server" ID="txtState" CssClass="form-control" /> 
       </div> 
       <asp:Label ID="lblZip" runat="server" AssociatedControlID="txtZip" Text="Zip" CssClass="col-md-2 control-label" Font-Bold="true"></asp:Label> 
       <div class="col-md-2"> 
        <asp:TextBox runat="server" ID="txtZip" CssClass="form-control" /> 
       </div> 
      </div> 
      <asp:Label ID="lblCountry" runat="server" AssociatedControlID="ddCountry" Text="Country" CssClass="col-md-2 control-label" Font-Bold="true"></asp:Label> 
      <div class="col-md-6"> 
       <asp:DropDownList ID="ddCountry" runat="server" CssClass="form-control"></asp:DropDownList> 
      </div> 
     </div> 
     <div class="form-group"> 
      <div class="col-md-offset-4 col-md-2"> 
       <asp:Button ID="btnSubmit" runat="server" Text="Send" CssClass="btn btn-primary" /> 
      </div> 
     </div> 
    </div> 
</form> 

我已經成功使用form-inline,但我喜歡form-horizo​​ntal的外觀。

有人能告訴我什麼,我做錯了

編輯

這裏是當我使用表格內聯,屏幕截圖,其左對齊,我無法弄清楚如何縮進它。 form-inline

EDIT 2

這是我想獲得它的樣子。

enter image description here

回答

2

你需要把周圍每個 「行」 的form-group類,像這樣:

<div class="form-horizontal"> 
    <h4>Please add your information</h4> 
    <hr /> 
    <div class="form-horizontal col-md-8"> 
    <div class="form-group"> 
     <label for="Name" class="col-md-4 control-label">Name</label> 
     <div class="col-md-8"> 
     <input id="Name" type="text" class="form-control" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="LastName" class="col-md-4 control-label">Last Name</label> 
     <div class="col-md-8"> 
     <input id="LastName" class="form-control" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="State" class="col-md-4 control-label">State</label> 
     <div class="col-md-2"> 
     <input id="State" class="form-control" /> 
     </div> 
     <label for="Zip" class="col-md-4 control-label">Zip</label> 
     <div class="col-md-2"> 
     <input id="Zip" class="form-control" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label class="col-md-4 control-label">Country</label> 
     <div class="col-md-8"> 
      <select class="form-control"></select> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-md-offset-4 col-md-8"> 
     <button type="submit" class="btn btn-primary">Send</button> 
     </div> 
    </div> 
    </div> 
</div> 

注:我將ASP.NET服務器控件切換到它們的HTML對應項。 Bootstrap類的用法是需要注意的,您可以通過CssClass屬性顯然將它們應用於服務器控件,就像您在代碼中一樣。

此外,我在你的標記中的每個「行」加起來爲12來填充你將它們放入的8單元容器。這樣就不需要在標記中出現換行符,因爲當Bootstrap到達第12個單元時,它將進入下一行。


UPDATE

爲了使國家和Zip條目更象你想,你將需要使用form-inline類的,像這樣的信息,「行」:

<div class="form-group"> 
    <div class="form-inline"> 
    <label for="State" class="col-md-4 control-label">State</label> 
    <div class="col-md-8"> 
     <input id="State" class="form-control" /> 
     <label for="Zip" class="control-label" 
      style="padding-left: 20px;">Zip</label> 
     <input id="Zip" class="form-control" /> 
    </div> 
    </div> 
</div> 

注意這會爲狀態標籤創建一個4單位區域,以便與其他行標籤對齊,然後爲其餘控件(Sta)設置一個8單位區域te文本框,Zip標籤和Zip文本框)。 padding-left風格顯然可以調整爲不同的值或單位(em或百分比),並將其拉出到CSS文件中,而不是內聯,但您明白了。

更新2

根據您想要的佈局的屏幕截圖,試試這個:

<div class="form-group"> 
    <label for="State" class="col-md-4 control-label">State</label> 
    <div class="col-md-2"> 
    <input id="State" class="form-control" /> 
    </div> 
    <label for="Zip" class="col-md-offset-3 col-md-1 control-label">Zip</label> 
    <div class="col-md-2"> 
    <input id="Zip" class="form-control" /> 
    </div> 
</div> 

它使用一個偏移量來郵標籤並因此郵編文本框推到右側,並使Zip標籤單位寬。

爲了使發送按鈕右對齊,把它變成一個12單元列拉的按鈕向右,就像這樣:

<div class="form-group"> 
    <div class="col-md-12"> 
    <button type="submit" class="btn btn-primary pull-right">Send</button> 
    </div> 
</div> 

pull-right類是按鈕標記的一部分。

+0

謝謝,現在看起來好多了,現在唯一困擾我的是狀態文本框和Zip標籤之間的差距。有沒有辦法縮短兩者之間的差距?我使用form-inline而不是form-horizo​​ntal來完成它,但隨後它與窗口左側對齊,我不知道如何在窗口左側與第一個標籤之間添加空格,如果我是我很抱歉沒有正確解釋 – Chris

+0

我將編輯並顯示一個屏幕截圖,當我使用form-inline代替時,form-inline我無法弄清楚如何從瀏覽器窗口左側移動它 – Chris

+0

@Chris - 不確定你的意思是彼此相鄰,你能否用你想要的狀態和ZIP標籤/文本框相互關聯以及自己的圖形來更新你的問題? –

2

所以我想的問題之一是你的表格組是如何嵌套。
此外,您正在使用窗體橫向我認爲你的意思是使用窗體在線

這裏只是一些示例代碼。

這裏是一個快速模擬了在codepen http://codepen.io/anon/pen/doowyQ

<h4>add your information</h4> 
<form> 
    <div class="form-group col-md-8"> 
    <label for="exampleInputEmail1">Email address</label> 
    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email"> 
    <label for="exampleInputPassword1">Password</label> 
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password"> 
    <div class="form-inline"> 
     <label for="exampleInputName2">Name</label> 
     <input type="text" class="form-control" id="exampleInputName2" placeholder="Jane Doe"> 
     <label for="exampleInputEmail2">Email</label> 
     <input type="email" class="form-control" id="exampleInputEmail2" placeholder="[email protected]"> 
    </div> 
    <button type="submit" class="btn btn-default">Send invitation</button> 
</form>