2011-11-08 18 views
5

Tôi không thể sử dụng JS, chỉ nên lưu trữ CSS này. Vùng chứa (DIV) là phần tử "ô bảng" chiều rộng tự động (linh hoạt).Giảm kích thước (nhưng không lên) hình ảnh bằng cách sử dụng CSS để khớp với ngăn chứa div trong IE9 (chiều rộng tối đa: sửa chữa 100%)

Tôi muốn chia tỷ lệ hình ảnh chỉ khi chiều rộng lớn hơn vùng chứa (người dùng có thể đổi kích thước cửa sổ - đó là lý do).

Tôi đã sử dụng mã được hiển thị bên dưới nhưng chỉ hoạt động trên IE7.

max-width: 100%; 
height: auto; 
width: auto\9; 

Tôi đã cố gắng tìm mọi cách khắc phục sự cố cho IE9 nhưng không thành công.

+1

chỉ thêm 'chiều rộng tối đa: 100%;' vào thẻ img không hoạt động? kiểm tra nó [ở đây] (http://jsfiddle.net/SAada/) thay đổi kích thước cửa sổ. Nó hoạt động cho IE7, IE8, Chrome và Firefox, nhưng tôi có thể kiểm tra nó trong IE9 ngay bây giờ. Dù sao, IE9 hoạt động như thế nào? – scumah

+0

Đây là tình huống và vấn đề chính xác mà tôi phải giải quyết: http://jsfiddle.net/SAada/2/ – Simek

+0

Các cài đặt kiểu bạn đang sử dụng cho hình ảnh đều ổn. Kiểm tra mẫu này hoạt động cho các trình duyệt phổ biến bao gồm IE9 - http://jsfiddle.net/cTxYc/ Các cài đặt bạn đã chỉ định cho div đang được đặt giữa các cài đặt cho hình ảnh – mvark

Trả lời

5

max-width nhu cầu của bạn được thiết lập để kích thước hình ảnh và sau đó width-100% như vậy:

img { 
    width: 100%; 
    max-width: 500px; 
    height: auto; 
} 

Tất nhiên, điều này có nghĩa rằng max-width của bạn phải được tự động thiết lập dựa trên các hình ảnh được tải, bao có thể không thực tế.

+0

Điều gì sẽ xảy ra nếu tôi không biết kích thước hình ảnh? Người dùng có thể đăng nó mà không có bất kỳ giới hạn nào và nó sẽ giảm tỷ lệ linh hoạt. – Simek

+1

Sau đó, bạn không thể giới hạn nó thành 'chiều rộng tối đa', vì bạn sẽ không biết' chiều rộng tối đa' mà bạn sẽ cho phép (trừ khi bạn chỉ cho phép tối đa cho tất cả các hình ảnh, bất kể là như thế nào. – ScottS

+0

đề cập trong mã câu hỏi ban đầu làm việc cho IE7? – Simek

0

Tôi tình cờ gặp câu hỏi cũ này trong khi cố gắng thực hiện chính xác điều tương tự mà OP đang thử. Tôi đang trả lời bất cứ ai có thể đến đây. Sau khi kiểm tra http://jsfiddle.net/SAada/2/ đề cập bởi OP, tôi tìm thấy một giải pháp thú vị:

thiết

height: auto; 

sẽ đảm bảo rằng hình ảnh sẽ không được kéo dài/rộng. Đồng thời, thiết lập

max-width: 100% 

sẽ đảm bảo rằng nếu chiều rộng yếu tố phụ huynh là ít hơn chiều rộng hình ảnh, hình ảnh được thu nhỏ lại.

Như vậy, sự kết hợp làm việc cho tôi là:

img { 
    max-width: 100%; 
    height: auto; 
} 

Oh, và sau khi một số tìm kiếm nhiều hơn, tôi phát hiện ra rằng kỹ thuật này cũng được sử dụng bởi Bootstrap cho hình ảnh đáp ứng!

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