2010-09-25 20 views
8

Tôi đang tải một loạt các img và tôi muốn chúng chiếm không gian trên tài liệu ngay cả khi chúng không được tải hoặc chưa tải xong.Cách buộc một <img> để chiếm chiều rộng, ngay cả khi hình ảnh không được tải

Tôi đã cố chỉ định chiều rộng và chiều cao (cả thuộc tính và thuộc tính kiểu) và cảm thấy khó chịu khi hình ảnh không chiếm dung lượng nếu chúng không tải.

Chắc chắn, phải có cách để buộc img vào các thứ nguyên cụ thể, ** ngay cả khi hình ảnh đó không tải được.

Cảm ơn

Trả lời

10

Có chắc chắn là:

<img src="path/to/image.png" height="50" width="20" /> 

Ngoài ra, lý do xác định chiều rộng và chiều cao trong thuộc tính style="/* css */" đã không làm việc là vì hình ảnh này là, theo mặc định, in-line yếu tố . Bạn đã chỉ định display: block hình ảnh sẽ chấp nhận các giá trị widthheight.

Nếu bạn thêm, đến css/phong cách:

display: inline-block; 

Nó sẽ làm việc. Tôi không chắc chắn lý do tại sao Firefox không tôn trọng thuộc tính chiều rộng/chiều cao, nhưng vẫn còn. Ngay cả IE, với một số doctype được xác định phải tôn trọng display: inline-block, vì mặc dù, img các thành phần, theo mặc định, trực tuyến.

+0

@Andrew Vit, cảm ơn bạn đã chỉnh sửa. Tôi vô tình bỏ nó trong khi tôi đang thêm thông tin cùng lúc khi bạn thực hiện chỉnh sửa của mình. Việc thu hồi là ngẫu nhiên, và một sự giám sát. Đã chỉnh sửa chỉnh sửa của bạn trở lại, nơi nó thuộc về! =) –

+0

Điều này không hoạt động nếu hình ảnh không tải. Ít nhất, trong FF mới nhất trên Windows. – Sambo

+0

@Sambo, cũng không phải trong Firefox 3.6.10 trên Ubuntu 10.04. Xem chỉnh sửa và [jsbin demo] (http://jsbin.com/ojocu3/3/), nó sẽ hoạt động ngay bây giờ. –

0

Câu trả lời đơn giản: quấn hình ảnh trong một <div> với chiều rộng cố định.

<div style="width: 400px;"><img src="404.png" /></div> 

Nếu bạn đặt đệm, đường viền, v.v ... thành 0, bạn sẽ không nhận thấy div nằm ở đó.

+0

Vậy tại sao lại đặt nó ở đó? 'Div' sẽ co lại thành vừa với hình ảnh * trừ khi * nó (' div') được đặt thành 'display: block' hoặc' inline-block'. Vì vậy, bạn muốn được cũng như chỉ cần chỉ rõ 'display: block;' (hoặc 'inline-block') trên' img', cộng với 'img' chấp nhận các thuộc tính' width' và 'height' vì một lý do. –

+0

Không, 'div' sẽ * không * thu nhỏ để vừa với hình ảnh -' display: block' là giá trị mặc định cho 'div'.Mặt khác, việc chỉ định 'display: block' trên hình ảnh có thể cũng sẽ hoạt động. Vấn đề với điều đó là, nếu bạn tải một hình ảnh nhỏ hơn kích thước html được chỉ định, hình ảnh sẽ bị méo. –

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