2014-12-08 16 views
5

Tôi đang phát triển một biểu mẫu trong Bootstrap 3 để có một loạt các điều khiển văn bản và hình ảnh. Biểu mẫu chiếm 100% vùng chứa của nó và đầu vào văn bản cũng được đặt thành chiều rộng 100%. Điều này hoạt động tốt khi tôi không phải lo lắng về một hình ảnh. Tôi sử dụng bootstrap .form-control.form-horizontal lớp học để làm cho nó hoạt (mã ở phía dưới):Tự động thay đổi kích thước các phần của div tùy thuộc vào chiều rộng của hình ảnh?

Look Current

I use the bootstrap .form-control and .form-horizontal

tôi cần phải đưa hình ảnh ở bên phải của những hình thức kiểm soát và giảm chiều rộng của họ một cách thích hợp:

Mockup

Mockup of what I'm talking about

Tôi chỉ cần đặt trong một cột khác trong hệ thống lưới của Bootstrap để xử lý, nhưng tôi cũng muốn các cột quay lại với chiều rộng đầy đủ khi hình ảnh được thực hiện, như minh họa trong hình ảnh mô phỏng ở trên. Tương tự như bố cục hình ảnh "chặt chẽ" trong Microsoft Word. Tôi đã thử đặt float:right;display:inline-block' đến lớp hình ảnh nhưng nó không bật ra một cách chính xác:

không làm việc Tuy

What I have right now.

Bất cứ ai cũng biết làm thế nào để làm cho công việc thiết kế như thế nào tôi mô tả nó trong mockup?

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="//code.jquery.com/jquery.min.js"></script> 
 
    <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" type="text/css" /> 
 
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script> 
 
    <meta charset="utf-8"> 
 
    <title>JS Bin</title> 
 
</head> 
 

 
<body> 
 
    <div> 
 
    <h2>New Guest</h2> 
 

 
    <form class="form-horizontal" role="form"> 
 
     <img src="http://images.all-free-download.com/images/graphiclarge/man_silhouette_clip_art_9510.jpg" style="float: right; max-width: 200px; display: inline-block;" /> 
 

 
     <div class="form-group" id="group-tbFirstName"> 
 
     <label for="tbFirstName" class="col-sm-3 control-label">First Name</label> 
 

 
     <div class="col-sm-9"> 
 
      <input type="text" class="form-control" id="tbFirstName" placeholder="First Name" value="" /> 
 
     </div> 
 
     </div> 
 

 
     <div class="form-group" id="group-tbLastName"> 
 
     <label for="tbLastName" class="col-sm-3 control-label">Last Name</label> 
 

 
     <div class="col-sm-9"> 
 
      <input type="text" class="form-control" id="tbLastName" placeholder="Last Name" value="" /> 
 
     </div> 
 
     </div> 
 

 
     <div class="form-group" id="group-optGender"> 
 
     <label for="optGender" class="col-sm-3 control-label">Gender</label> 
 

 
     <div class="col-sm-9"> 
 
      <input type="text" class="form-control" id="optGender" placeholder="Gender" value="" /> 
 
     </div> 
 
     </div> 
 

 
     <div class="form-group" id="group-tbAge"> 
 
     <label for="tbAge" class="col-sm-3 control-label">Age</label> 
 

 
     <div class="col-sm-9"> 
 
      <input type="number" class="form-control" step="any" id="tbAge" value="" placeholder="Age" /> 
 
     </div> 
 
     </div> 
 

 
     <div class="form-group" id="group-dtDateOfBirth"> 
 
     <label for="dtDateOfBirth" class="col-sm-3 control-label">Date of Birth</label> 
 

 
     <div class="col-sm-9"> 
 
      <input type="text" class="form-control" id="dtDateOfBirth" placeholder="Date of Birth" value="" /> 
 
     </div> 
 
     </div> 
 
    </form> 
 
    </div> 
 
</body> 
 

 
</html>

Hiệu quả cụ thể tôi sẽ cho là phải có đầu vào bên dưới hình ảnh mở rộng ra đến 100% nữa. Như thế này:

not sure if it's possible

Tôi biết rằng hình ảnh có thể được lưu hành nhưng tôi không muốn tất cả các đầu vào bên dưới nó ở chiều rộng tương tự như những người trên đường với hình ảnh. Tôi muốn họ mở rộng.

+0

Đặt hình ảnh như đúng phao và thêm một số đệm với nó. Không sử dụng inline-block cho điều đó. – frenchie

+3

Tôi đề nghị bạn cung cấp một fiddle –

+1

Đã thêm! http://jsbin.com/neqosoduqe/1/edit –

Trả lời

0

Bạn chỉ cần thêm một số phao nổi để hình ảnh và cũng để hình thành, như trong những điều sau đây:

(FIDDLE)

HTML

<img class="img-right"> 
<form class="form-horizontal"> 
</form> 

CSS

.img-right { 
    float: right; 
    max-width: 200px; 
    padding-left: 20px } 

.form-horizontal { 
    float: right } 
+0

Hm ... Bất kỳ cách nào để làm cho những cái dưới đây nó tự động mở rộng như vậy? http://i.imgur.com/4ufPJT3.png –

0

Bạn đã thử đặt đầu vào 3 hoặc 4 đầu tiên và hình ảnh của riêng mình hàng? Điều này sẽ làm cho hàng mở rộng ra ngoài chiều rộng của vùng chứa và giữ hình ảnh của bạn ở bên phải. Bạn cũng có thể thêm lớp class="img-responsive" vào hình ảnh sao cho nó sẽ co lại khi màn hình co lại.

<div class="row"> 
    <div class="col-sm-8"> 

     //inputs go here 

    </div> 
    <div class="col-sm-4"> 

    //image goes here 

    </div> 
</div> 
<div class="row"> 
    <div class="col-sm-12> 

    //the rest of your inputs here 

    </div> 
</div> 
0

Tôi thấy nhiều loại cột định dạng trong mã của bạn. Điều này làm cho nó hoạt động không kiểm soát được. Chỉ sử dụng một định dạng, ví dụ: class="col-lg-6. Miễn là tôi biết, bootstrap sử dụng 100% để kiểm soát biểu mẫu, chúng tôi có thể sửa đổi nó bằng cách chọn lớp cột phù hợp.

Để xử lý nhu cầu của bạn, bạn có thể tạo tệp CSS mới. đặt nó bên dưới bootstrap.min.css. Sau đó, Float hình ảnh ở bên phải và đặt chiều rộng tối thiểu và chiều rộng tối đa bằng% để làm cho nó được tự động thay đổi kích thước dựa trên cửa sổ trình duyệt.

Bên cạnh đó, hãy sử dụng class='img-responsive' bên trong hình ảnh để tự động thay đổi kích thước.

0

Sử dụng float propertyfloat: right;

.img-right { 
 
    float: right; 
 
    max-width: 200px; 
 
    padding-left: 20px; 
 
} 
 

 
.form-horizontal { 
 
    float: right; 
 
}
<img class="img-right"> 
 
<form class="form-horizontal"> 
 
</form>

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