2010-09-25 3 views
8

Je charge beaucoup d'img, et je voudrais qu'ils occupent de l'espace sur le document même s'ils ne sont pas chargés, ou n'ont pas encore terminé le chargement. J'ai essayé de spécifier la largeur et la hauteur (à la fois comme attributs eux-mêmes et dans un attribut de style), et je trouve frustrant que les images ne prennent pas de place si elles ne se chargent pas.Comment forcer un <img> à prendre de la largeur, même si l'image n'est pas chargée

Sûrement, il doit y avoir un moyen de forcer un img à des dimensions spécifiques, ** même si cette image ne se charge pas.

Merci

Répondre

10

Il y a certainement:

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

En outre, la raison pour spécifier la largeur et la hauteur à l'intérieur de l'attribut style="/* css */" n'a pas fonctionné parce que les images sont, par défaut, les éléments en ligne . Si vous aviez spécifié display: block, l'image aurait accepté les valeurs width et height.

Si vous ajoutez à la css/style:

display: inline-block; 

Il devrait fonctionner. Je ne suis pas sûr pourquoi Firefox ne respecte pas les attributs width/height, mais quand même. Même IE, avec un doctype défini devrait respecter display: inline-block, puisque img éléments sont, par défaut, en ligne quand même.

+0

@Andrew Vit, merci pour le montage. Je l'ai accidentellement désactivé pendant que j'ajoutais des informations en même temps que vous effectuiez votre édition. La révocation était accidentelle et un oubli. Édité votre édition, où elle appartient! =) –

+0

Cela ne fonctionne pas si l'image ne se charge pas. Au moins, dans le dernier FF sur Windows. – Sambo

+0

@Sambo, ni dans Firefox 3.6.10 sur Ubuntu 10.04. Voir edit, et [jsbin demo] (http://jsbin.com/ojocu3/3/), ça devrait marcher maintenant. –

0

La réponse simple: envelopper l'image dans un <div> avec une largeur fixe.

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

Si vous définissez le rembourrage, etc bordure à 0, vous ne remarquerez que la div est là.

+0

Alors pourquoi le mettre là? Le 'div' se contractera pour s'adapter à l'image * sauf si * it (le' div') est réglé sur 'display: block' ou' inline-block'. Donc, vous seriez aussi content de spécifier 'display: block;' (ou 'inline-block') sur' img', plus 'img' accepte les attributs' width' et 'height' pour une raison. –

+0

Non, le div divisera * pas * pour s'adapter à l'image - 'display: block' est la valeur par défaut pour un' div'.D'un autre côté, spécifier 'display: block' sur l'image fonctionnerait probablement aussi bien. Le problème avec cela est que si vous chargez une image plus petite que les dimensions spécifiées html, l'image sera déformée. –

Questions connexes