2010-09-27 23 views
19

me trataron:¿Hay un css equivalente a 'align = "center"'?

margin-left: auto; 
margin-right: auto; 

Pero no se centra en los elementos de mis celdas de la tabla. Tengo una combinación de elementos de texto y <span> en el <td> s.

Una vez que establezco 'align = "center"' en cualquiera de los elementos <td>, se centra.

¿Cómo logro esto en la hoja de estilo?

Por cierto, cuando hago text-align: center que funciona para texto. Pero no para otros elementos como <span> s.

Editar:

El lapso tiene la siguiente clase, si eso afecta el problema de alineación:

.dot { 
    display: block; 
    width: 10px; 
    height: 10px; 
    background: #333; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    -khtml-border-radius: 5px; 
} 
+2

Nota: 'margin: 0 auto;' hace lo mismo en menos líneas de código – jcolebrand

+0

Gracias @drachenstern.Siempre buscando formas de reducir el código innecesario :) – marcamillion

+0

@drachenstern: No, no es - prueba: http://jsfiddle.net/pzRPA/11/ y http://jsfiddle.net/pzRPA/10/ – Crozin

Respuesta

22

margin:0 auto; funcionará en, elementos

  • de bloques de nivel no flotados estáticas/relativos posicionado con una anchura explícita establecer
  • elementos ancho intrínseco como imágenes/objetos/tablas

text-align:center funcionarán en

  • en línea/en línea bloques

Por su situación es probable que pueda hacer ..

#container { text-align:center; } 
#container span.block-level-spans { margin: 0 auto; } 

o hacen las luces en el interior en lugar de inline-blockblock.

EDIT:

Inline-bloque: Este valor provoca que un elemento generar una caja de bloque, que en sí es fluía como una sola caja de línea, similar a un elemento reemplazado. El interior de un bloque en línea tiene el formato de un cuadro de bloque , y el elemento en sí es formateado como un elemento en línea reemplazado .

+0

Maravilloso ... hacer que el tramo 'inline-block' y agregar ese selector span-block-level-spans pareciera haber hecho el truco. ¡Asombroso! ¿Puede proporcionar un enlace sobre qué 'bloque-nivel-abarca' y por qué funciona? Gracias. – marcamillion

+1

Vale la pena señalar que 'margin: 0 auto' no funciona en IE a menos que lo fuerce a (llamado) modo compatible con estándares utilizando un' DOCTYPE', que es algo que debería hacer de todos modos. – cletus

+0

Un bloque en línea es básicamente un elemento en línea que permite recibir un ancho/alto. Es muy parecido a una carroza, excepto que no tienes que preocuparte por la limpieza. Se le puede dar una alineación vertical. A veces tienes que especificar 'top' si no se alinea correctamente en la parte superior. –

-3

Hice una búsqueda rápida en Google y encontré esto:

lapso es un inline elemento y, por lo tanto, no se puede alinear. Conviértalo en un p o un div en lugar de un lapso, o explícitamente haga que el span bloque nivel mediante el uso de pantalla: bloque.

encontrar en: Velocity Reviews Forumn Link

+0

Más abajo en esa publicación hay más información, específicamente: text-align centra el texto dentro del lapso. Como el intervalo es tan ancho como el texto que contiene, centrar ese texto no tiene ningún efecto. Para centrar el tramo necesita aplicar text-align: center; a cualquier elemento de nivel de bloque es el elemento primario del tramo. – PatrickV

+0

REVISIÓN de publicaciones de baja calidad: ¡No! La discusión referida es de 2005. CSS le permite alterar la apariencia del elemento completamente hoy en día. – ElmoVanKielmo

Cuestiones relacionadas