En el siguiente HTML, me gustaría que el marco alrededor de la imagen sea ajustado: no estirar y ocupar todo el ancho disponible en el contenedor principal. Sé que hay un par de maneras de hacerlo (incluyendo cosas horribles como configurar manualmente su ancho a un número particular de píxeles), pero ¿cuál es el derecho manera?¿Cómo evito que un DIV se expanda para ocupar todo el ancho disponible?
Edit: Una respuesta sugiere que apago "display: block" - pero esto hace que el renderizado se vea mal en cada navegador que lo he probado. ¿Hay alguna manera de obtener un aspecto agradable? con "display: block" off?
Edit: Si agrego "float: left" al pictureframe y "clear: both" a la etiqueta P, se ve genial. Pero no siempre quiero que estos marcos floten hacia la izquierda. ¿Hay una manera más directa de lograr lo que sea que "flote" esté haciendo?
.pictureframe {
display: block;
margin: 5px;
padding: 5px;
border: solid brown 2px;
background-color: #ffeecc;
}
#foo {
border: solid blue 2px;
float: left;
}
img {
display: block;
}
<div id="foo">
<span class="pictureframe">
<img alt=''
src="http://stackoverflow.com/favicon.ico" />
</span>
<p>
Why is the beige rectangle so wide?
</p>
</div>
feo, pero de las respuestas hasta ahora que realmente funcionan, esto me parece menos hacky. – raldi