2011-12-22 39 views
30

Hướng tới responsive design, Tôi đang sử dụng% s cho hình ảnh, ví dụ .:Chiều cao: Auto trong Internet Explorer 8 và dưới

#example img { 
    width: 100%; 
    height: auto; 
    max-width: 690px; // Width of the image uploaded. 
} 

này hoạt động tuyệt vời, ngoại trừ trong Internet Explorer 8 và thấp hơn. Đây có phải là do height: auto là một phần của CSS3, chỉ được hỗ trợ bởi IE9 trở đi?

Và phần quan trọng nhất ... bất kỳ đề xuất nào về cách giải quyết vấn đề này? Điều duy nhất tôi có thể nghĩ đến cho đến nay là để cho nó một chiều cao tối đa.

Cảm ơn

Trả lời

57

Hãy thử điều này:

img { 
    width: inherit; /* Make images fill their parent's space. Solves IE8. */ 
    max-width: 100%; /* Add !important if needed. */ 
    height: auto; /* Add !important if needed. */ 
} 

OR:

img { max-width:100%; height: auto; } /* Enough everywhere except IE8. */ 
@media \0screen {img { width: auto }} /* Prevent height distortion in IE8. */ 

Cả hai giải pháp làm việc. Sự khác biệt là width:inherit làm cho hình ảnh lấp đầy không gian của bố mẹ trong khi width:auto tối đa chúng ở kích thước thực của chúng. Xem fit.css

+1

Điều duy nhất làm việc cho tôi là: '@media \ 0screen {img {width: auto}}/* Ngăn chặn sự biến dạng độ cao trong IE8. */' – jamietelin

+2

Điều này giải quyết nhiều hơn chỉ là IE 8. Cố định một vấn đề trong IE 11 cho tôi. Thật là một mớ hỗn độn. –

+1

Điều này giải quyết nó cho tôi trong IE11 quá. Lúc đầu, việc thêm "width: inherit" không khắc phục được. Nhờ lời giải thích của ryanve (SO HELPFUL !!!) Tôi nhận ra rằng tôi cần phải sửa đổi vùng chứa của hình ảnh và vì vậy tôi đã cho nó "chiều rộng: 100%". Tôi có một hình ảnh ở trên cùng và muốn văn bản trên đầu trang của nó, vì vậy đây là mã tôi đã kết thúc với: .containerBox { vị trí: tương đối; display: inline-block; chiều rộng: 100%; } và sau đó cho hình ảnh: .img { display: block; chiều rộng tối đa: 100%; chiều cao: tự động; lề: tự động; padding: auto; chiều rộng: được kế thừa; } – seizethecarp

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