2012-11-28 28 views
14

Tôi muốn có một biểu mẫu có bố cục nằm ngang ở cấp đầu tiên, nhưng sau đó trong một hàng có thể có dạng "nội dòng" mà tôi muốn có bố cục dọc (mặc định). Có cách nào dễ dàng để đạt được điều này?Biểu mẫu bình thường (dọc) bên trong mẫu ngang với Twitter Bootstrap

Lưu ý:.form-inline không làm những gì tôi đang tìm kiếm, vì nó không đặt nhãn bên trong trên đầu vào.

Cho đến nay tôi có một cái gì đó như thế này:

<div class="form-horizontal"> 
    <div class="control-group"> 
     <label class="control-label"> 
      outer label 
     </label> 
     <div class="controls ### SOMETHING TO CLEAR/OVERRIDE form-horizontal ###"> 
      ### INLINE FORM WITH SAME STRUCTURE IS HERE ### 
     </div> 
    </div> 
</div> 

Trả lời

8

Boostrap không thể làm điều này theo mặc định, nhưng tôi đã bao gồm trong này ngã ba của tôi https://github.com/jasny/bootstrap/blob/master/less/jasny-forms.less#L40

Hãy xem xét sử dụng phần mở rộng Jasny để Bootstrap http://jasny.github.com/bootstrap

hoặc chỉ sử dụng CSS này

.form-vertical .form-horizontal .control-group > label { 
    text-align: left; 
} 
.form-horizontal .form-vertical .control-group > label { 
    float: none; 
    padding-top: 0; 
    text-align: left; 
} 
.form-horizontal .form-vertical .controls { 
    margin-left: 0; 
} 
.form-horizontal .form-vertical.form-actions, 
.form-horizontal .form-vertical .form-actions { 
    padding-left: 20px; 
} 
.control-group .control-group { 
    margin-bottom: 0; 
} 

Với HTML

<form class="form-horizonal"> 
    # Horizal controls here 

    <div class="form-vertical"> 
     <div class="control-group"> 
      <label class="control-label">Label</label> 
      <div class="controls">Something here</div> 
     </div> 
    </div> 
</form> 
+1

Điều này không hoạt động chút nào .. Ít nhất nữa. –

+0

Điều này làm việc tốt cho tôi trong Bootstrap 3, với sự thay đổi nhỏ của việc thêm 'width: 100%' trong kiểu '.form-horizontal .form-vertical .control-group> label'. – user9645

-2

Tôi không chắc chắn chính xác những gì bạn đang tìm kiếm nhưng tôi đã cố gắng đoán.

Tôi đã tạo biểu mẫu có hai đường thẳng đứng dòng thứ hai với nhiều phần tử biểu mẫu.

Tôi đã sử dụng khối nội tuyến để thực hiện việc này.

http://jsbin.com/icoduh/1/edit

0

Đây là @ jasny-arnold-daniels CSS được cập nhật cho Boostrap 3. Trong 3 hình thức nhóm thay thế kiểm soát nhóm, hình thức kiểm soát thay thế kiểm soát. Cũng cần thay đổi chiều rộng của @ user9645. CSS mới là:

.form-vertical .form-horizontal .form-group > label { 
    text-align: left; 
} 
.form-horizontal .form-vertical .form-group > label { 
    float: none; 
    padding-top: 0; 
    text-align: left; 
    width: 100% 
} 
.form-horizontal .form-vertical .form-control { 
    margin-left: 0; 
} 
.form-horizontal .form-vertical.form-actions, 
.form-horizontal .form-vertical .form-actions { 
    padding-left: 20px; 
} 
.form-group .form-group { 
    margin-bottom: 0; 
} 
0

Bạn không cần phải viết tùy chỉnh CSS cho Bootstrap 3. Thay vì đưa lớp học của bạn của form-ngang trên thẻ hình thức, chỉ đặt một div wrapper với lớp xung quanh các hình thức các phần tử mà bạn muốn nằm ngang (và hỗ trợ các lớp kích thước cột cho các mục nằm ngang).

Ví dụ, điều này sẽ làm việc:

<form> 
    <div class="form-horizontal"> 
    <div class="form-group"> 
     <label class="col-sm-2 control-label">I'm a horizontal form element</label> 
     <div class="col-sm-10"> 
     <input type="text" class="form-control"> 
     </div> 
    </div> 
    </div> 

    <div class="form-group"> 
    <label>I'm a vertical form element</label> 
    <input type="text" class="form-control"> 
    </div> 
</form> 

này hoạt động vì hình thức thẳng đứng được tự động sử dụng cho một hình thức không có lớp tuyên bố một cách rõ ràng. Đó là 'thiếu một lớp' có thể được nhìn thấy trong các tài liệu here.

+0

Tôi sao chép dán mã này vào một [plunker đơn giản] (https://plnkr.co/edit/H3BJ3ouZrFIZgXji9mWv?p=preview), nhưng nó vẫn đặt cả hai 'form-groups' trong một layout dọc – eh1160

+0

@ eh1160 Tôi copy- dán mã hình thức ngang ngang của Bootstrap vào máy plunker của bạn và nó cũng không hoạt động, vì vậy tôi nghĩ có thể có gì đó không ổn với plunker của bạn. – Sia

+0

@ eh1160 Tôi đã cần phải chỉnh sửa một số điều mặc dù - bạn có thể xem một ví dụ làm việc ở đây (tôi cũng đã cập nhật câu trả lời): https://codepen.io/nolasia/pen/YQBmRX. Cảm ơn đã chỉ ra điều đó! – Sia

Các vấn đề liên quan