Necesito hacer que el siguiente código sea estirable con una altura predefinida
<style>
.title{
background: url(bg.gif) no-repeat bottom right;
height: 25px;
}
</style>
<span class="title">This is title</span>
Pero dado que span es un elemento en línea, la propiedad "height" no funcionará.
Intenté usar div en su lugar, pero se expandirá hasta el ancho del elemento superior. Y el ancho debe ser flexible.
¿Alguien puede sugerir alguna buena solución para esto?
Gracias por adelantado.
Respuestas:
Dale un
display:inline-block
CSS, eso debería permitirle hacer lo que quieras.En términos de compatibilidad: IE6 / 7 será trabajar con esto, como modo de peculiaridades sugiere:
fuente
inline-block
.Note: No versions of Internet Explorer (including IE8) support the property values "inline-table", "run-in", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-row", or "table-row-group".
IE 6/7 accepts the value only on elements with a natural display: inline.
span
entonces. Gracias por la información, henasraf.Utilizar
.title{ display: inline-block; height: 25px; }
El único truco es la compatibilidad con el navegador. Compruebe si su lista de navegadores compatibles maneja el bloqueo en línea aquí .
fuente
esto es para que display: inline-block funcione en todos los navegadores:
Curiosamente, en IE (6/7), si activa hasLayout con "zoom: 1" y luego configura la pantalla en línea, se comporta como un bloque en línea.
.inline-block { display: inline-block; zoom: 1; *display: inline; }
fuente
Suponiendo que no desea convertirlo en un elemento de bloque, entonces puede intentar:
.title { display: inline-block; /* which allows you to set the height/width; but this isn't cross-browser, particularly as regards IE < 7 */ line-height: 2em; /* or */ padding-top: 1em; padding-bottom: 1em; }
Sin embargo, la solución más fácil es tratar simplemente el
.title
como un elemento en bloque, y el uso de las etiquetas de encabezado correspondiente<h1>
a través<h6>
.fuente
lapso
{ display: table-cell; height: (your-height + px); vertical-align: middle; }
Para que los tramos funcionen como una celda de tabla (o cualquier otro elemento, para el caso), se debe especificar la altura. Le he dado una altura a los tramos y funcionan bien, pero debes agregar altura para que hagan lo que quieres.
fuente
Otra opción, por supuesto, es usar Javascript (Jquery aquí):
$('.box1,.box2').each(function(){ $(this).height($(this).parent().height()); })
fuente
¿Por qué necesita un tramo en este caso? Si desea diseñar la altura, ¿podría usar un div? Puede probar un div con
display: inline
, aunque eso podría tener el mismo problema, ya que de hecho estaría haciendo lo mismo que un span.fuente