Điều chỉnh và kích thước hình ảnh để vừa với div (bootstrap)


96

Tôi đang cố gắng có được một hình ảnh để vừa 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 đó nó bị thu nhỏ theo tỷ lệ với kích thước không đủ lớn. Tôi không chắc cách tốt nhất là làm cho hình ảnh phù hợp với bên trong nó là gì.

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

Đâ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 của tôi

.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;


}

Tôi đã đăng Câu trả lời cho một câu hỏi tương tự ở đây: stackoverflow.com/questions/41870216/…
FredyWenger

Câu trả lời:


56

Bạn có thể xác định rõ ràng widthheightcủa hình ảnh, nhưng kết quả có thể không đẹp nhất.

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

jsFiddle


... theo nhận xét của bạn, bạn cũng có thể chặn bất kỳ overflow- xem ví dụ này để xem hình ảnh bị giới hạn chiều cao và bị cắt vì quá rộng.

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

.top1 img {
    height:100%;
}

Tôi đã xem xét để làm điều đó, rất tiếc như bạn đã nói, kết quả không phải là tốt nhất. Lý tưởng nhất, tôi muốn các hình ảnh được thu nhỏ lại để 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 bị ràng buộc sẽ bị ẩn. If that
doing

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

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 sẽ thực hiện được mẹo!
iMobaio

1
tốt hơn từ width:100%;max-width:100%;và tốt hơn tất cả chúng là lớp img-responsivetrong BS3 hoặc img-fluidBS4.
Nabi KAZ

167

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>

CẬP NHẬT:

Trong Bootstrap 4 img-responsivetrở thành img-fluid, vì vậy giải pháp sử dụng Bootstrap 4 là:

<div class="container">
    <div class="col-md-4 px-0">
        <img src="images/food1.jpg" class="img-fluid">
    </div>
</div>

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

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

28
img-fluidbây giờ, khôngimg-responsive
wordsforthewise


32

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


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

7

Tôi đã gặp vấn đề tương tự và tình cờ tìm ra 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
Được giải quyết bằng Bootstrap thay vì CSS tùy chỉnh. Cảm ơn bạn.
mattgreen

7

Tôi đã sử dụng cái này và làm việc cho tôi.

<div class="col-sm-3">
  <img src="xxx.png" style="width: auto; height: 195px;">
</div>

4

Nếu ai trong số các bạn đang tìm Bootstrap-4 . Nó đây

<div class="row no-gutters">
    <div class="col-10">
        <img class="img-fluid" src="/resources/img1.jpg" alt="">
    </div>
</div>

đây không phải là giải pháp lý tưởng nếu bạn có một cột với văn bản trong nó như là nó cũng sẽ lên khó so với mép biên giới
James Burke

2

Hầu hết thời gian, dự án bootstrap 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 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ó phản hồi, hãy lặp lại các bước trên trong phần $(window).resize(func).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.