2012-06-23 11 views
16

En CSS, ¿puedo alinear alturas de bloques en línea?En CSS, ¿puedo alinear las alturas de los bloques en línea?

Pensé estableciendo los márgenes a 0 y alto a automático, que el bloque se expandiría para ajustarse al espacio disponible, pero aún así se ajusta perfectamente alrededor del bloque.

.myclass { 
    display: inline-block; 
    margin: 0em; 
    padding: 1em; 
    height: auto; 
    border: solid; 
} 

http://jsfiddle.net/6NQDw/

quisiera ambas cajas a ser la misma altura, pero quieren la anchura div/alturas a ser determinados por su contenido, no especificando una anchura/altura en píxeles.

¿Hay algún tipo de CSS de relleno/margen/alineación o algo así que pueda usar?

Respuesta

23

Puede usar display:table-cell; si necesita una solución de CSS puro, pero tenga en cuenta que no funcionará en IE7 (supongo que IE6 está completamente olvidado).

.myclass { 
    display: table-cell; 
    margin: 0em; 
    padding: 1em; 
    height: auto; 
    border: solid; 
} 

Cross browser support for display:table-cell

Su mejor apuesta para lograr lo que necesita es establecer explícitamente JavaScript embargo ancho de envases con contenido dinámico es casi siempre el camino equivocado.

+7

'inline-block' no funciona para elementos de bloque en IE7 tampoco de todos modos, así que supongo que no es necesario el soporte IE7. – BoltClock

+0

Bueno, estoy seguro de que solo estoy presentando opciones. – brezanac

+1

table-cell es tentador (¿está bien usarlo fuera de una tabla?), Pero ¿hay alguna forma de preservar el espacio entre los bloques .myclass? Cuando cambié a la celda de tabla, se colapsó el espaciado, y al agregar márgenes no parece haber espacio entre las líneas del borde. http://jsfiddle.net/6NQDw/18/ –

0

Puede usar display: table-cell; para que las casillas coincidan entre sí.

0

Si desea soporte para IE7, no puede usar inline-block o table-cell.

sólo tiene que utilizar float: left para estar seguro ...

de lo contrario aterrizarán usando un css separada sólo para Internet Explorer 7.

+0

No creo que el flotador alcance la misma altura tampoco. http://jsfiddle.net/6NQDw/17/ –

+0

si sabes qué esperar dentro de los dos cuadros, entonces simplemente puedes agregar "altura" a "myclass". sin embargo, si espera que el contenido dentro de los cuadros pueda cambiar, entonces será un problema para solucionar en IE7. – Geocrafter

-1

Es fácil agregar una hoja de estilo para lte ie8, restablecer sus propiedades para mostrar: bloquear, flotar: izquierda, y hacer el ancho total de 99% en vez de 100%. Esto le dará la funcionalidad requerida desde el principio.

+2

en el SO compartimos el código, ¿puedes editar tu respuesta para que tenga el alcance de la pregunta de los carteles originales? – Anthony

Cuestiones relacionadas