2013-05-09 80 views
56

Tôi đang cố gắng để có được một hình ảnh để phù hợp với một div kích thước cụ thể. Thật không may, hình ảnh không phù hợp với nó và thay vào đó tỷ lệ thu nhỏ lại thành một kích thước không đủ lớn. Tôi không chắc cách tốt nhất để đi về việc có được hình ảnh phù hợp với bên trong nó là gì.Điều chỉnh và kích thước hình ảnh để phù hợp với một div (bootstrap)

Nếu điều này không đủ mã, tôi rất sẵn lòng cung cấp thêm và tôi mở để sửa bất kỳ lỗi nào khác mà tôi đang xem.

Dưới đây là HTML

<div class="span3 top1"> 
     <div class="row"> 
      <div class="span3 food1"> 
       <img src="images/food1.jpg" alt=""> 
      </div> 
     </div> 
      <div class="row"> 
       <div class="span3 name1"> 
        heres the name 
      </div> 
      </div> 
      <div class="row"> 
       <div class="span3 description1"> 
        heres where i describe and say "read more" 
      </div> 
      </div> 


     </div> 

CSS My

.top1{ 

    height:390px; 
    background-color:#FFFFFF; 
    margin-top:10px; 


} 

.food1{ 

background-color:#000000; 
height:230px; 


} 

.name1{ 

background-color:#555555; 
height:90px; 

} 

.description1{ 

background-color:#777777; 
height:70px; 


} 

Trả lời

38

Bạn có thể xác định một cách rõ ràng widthheight các hình ảnh, nhưng kết quả có thể không phải là tìm kiếm tốt nhất.

.food1 img { 
    width:100%; 
    height: 230px; 
} 

jsFiddle


... mỗi bình luận của bạn, bạn cũng có thể chỉ chặn bất kỳ overflow - xem this example để xem một hình ảnh bị hạn chế bởi chiều cao và cắt đứt bởi vì nó quá rộng.

.top1 { 
    height:390px; 
    background-color:#FFFFFF; 
    margin-top:10px; 
    overflow: hidden; 
} 

.top1 img { 
    height:100%; 
} 
+0

Tôi đã xem xét điều đó, không may như bạn đã nói, kết quả không phải là kết quả tốt nhất. Lý tưởng nhất, tôi muốn các hình ảnh được thu nhỏ để chiều cao của hình ảnh phù hợp với chiều cao của div, và chiều rộng của hình ảnh vượt quá chiều rộng của div ràng buộc sẽ bị ẩn. Nếu điều đó làm cho sence – smilefreak24

+0

Có đó là những gì tôi đang tìm kiếm! Cảm ơn bạn rất nhiều! – smilefreak24

+0

Câu trả lời KHÁC là câu trả lời hay nhất, chỉ cần thêm class = "img-responsive" vào thẻ img thực hiện thủ thuật! – iMobaio

101

Hãy thử cách này:

<div class="container"><div class="col-md-4" style="padding-left: 0px; padding-right: 0px;"> 
     <img src="images/food1.jpg" class="img-responsive"> 
    </div> 
</div> 
+0

Đây thực sự là phương pháp khởi động đúng. – jerrylow

+4

Tuyệt! class = "img-responsive" đã giúp. Có lẽ đây sẽ là câu trả lời được chấp nhận ngày hôm nay. – Anupam

+0

class = "img-responsive" chắc chắn là con đường để đi! Đây sẽ là câu trả lời được chấp nhận. – iMobaio

6

Tôi có vấn đề này cùng và stumbled khi các giải pháp đơn giản sau đây. Chỉ cần thêm một chút đệm vào hình ảnh và nó tự thay đổi kích thước để vừa với div.

<div class="col-sm-3"> 
    <img src="xxx.png" class="img-responsive" style="padding-top: 5px"> 
</div> 
+1

Giải quyết WITH Bootstrap thay vì CSS tùy chỉnh. Cảm ơn bạn. – mattgreen

+1

Giúp rất tốt! Cảm ơn. – Elnoor

23

Chỉ cần thêm lớp img-responsive vào thẻ img của bạn, nó được áp dụng trong bootstrap 3 trở đi!

chúc may mắn :)

+0

câu trả lời ngắn gọn và chính xác. – Darush

+0

cảm ơn vì điều này. bất kỳ ý tưởng làm thế nào để có được nó để chơi tốt đẹp với 'văn bản trung tâm' trên một col lưới có chứa? – user1272965

+0

Xin lỗi nhưng bạn có thể vui lòng cụ thể, tôi không nhận được câu hỏi của bạn đúng cách, cảm ơn bạn! – Shashi

1

Hầu hết thời gian, bootstrap project sử dụng jQuery, vì vậy bạn có thể sử dụng jQuery.

Chỉ cần lấy chiều rộng và chiều cao của cha mẹ với JQuery.offsetHeight()JQuery.offsetWidth() và đặt chúng thành phần tử con với JQuery.width()JQuery.height().

Nếu bạn muốn làm cho nó đáp ứng, hãy lặp lại các bước trên trong $(window).resize(func), là tốt.

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