2010-10-08 24 views
13

¿Qué son buenas prácticas al seleccionar anchos de columna en una tabla? Digamos que tengo cuatro columnas, nombre (ancho variable), descripción (largo contenido de texto), recuento (máximo 3 caracteres), fecha (formato fijo).Prácticas de ancho de columna de tabla HTML

¿Cuál sería una buena práctica? Estoy pensando en ancho fijo para describir, contar y ancho (por lo tanto, en realidad también hace que el nombre sea ancho "fijo"). Pero mi verdadera pregunta es cómo seleccionar un tamaño de ancho particular. Por ejemplo, si el formato de fecha es aaaa-MM-dd, hay algún truco para convertir esos 10 caracteres a un ancho que garantice que se muestre bien en cualquier navegador usando cualquier fuente y tamaño de fuente (sin tomar demasiado espacio)?

edición: Con fija quiero decir algo parecido a la "cantidad fija de píxeles en relación con fuente de ancho"

+0

Usted podría utilizar em como unidad de medida, esto garantizaría que va a tener suficiente espacio, pero probablemente le proporcionará más de lo que necesita. –

+0

Creo que la cantidad fija de píxeles en relación con el ancho de la fuente significa em, como Kevin Wiskia ha comentado, pero personalmente encuentro que corregir los píxeles es una mala idea (cuando se trata del ancho, aunque es bueno para la altura). El motivo es que no conoce el ancho de la pantalla de los usuarios. Supongamos que su tabla solo necesita 500 píxeles, pero el usuario tiene una pantalla de 1920 por 1080. Esto significa que su tabla ahora ocupa poco menos del 25% del ancho de la pantalla. Sin embargo, con mi método puede tomar, por ejemplo, el 75% de la pantalla y tener cada columna como un cierto porcentaje de ese 75%. – ClarkeyBoy

+0

@ClarkeyBoy, Buen punto. Quizás entonces una buena solución sería especificar el ancho de la tabla al 75% y las columnas/celdas individuales usando el espacio en blanco: nowrap con el tamaño de letra en em? Entonces las columnas ocuparían exactamente tanto espacio como fuera necesario (sin espacio excesivo) y no se vería muy pequeño incluso en 1920x1080. – icanBany1

Respuesta

14

Se puede declarar white-space: nowrap; en todas las celdas que desea estirar todo lo que necesitan sin utilizar espacio extra (nombre, fecha, recuento), y simplemente le da a la celda restante un ancho del 100%. De esta forma, la celda 100% amplia se expandirá tanto como sea posible, sin causar que las otras células colapsen en múltiples líneas.

1

Si quiere ahorrarse un montón de marcas ...

primer lugar, si por ancho fijo que quiere decir un porcentaje fijo, añada lo siguiente a su hoja de estilos:

.width1 { 
    width: 1%; 
} 
.width2 { 
    width: 2%; 
} 
.width99 { 
    width: 99%; 
} 
.width100 { 
    width: 100%; 
} 

Esto le da la flexibilidad que necesita si decide aplicar un ancho de porcentaje impar para cualquiera de ellos si lo desea, por ejemplo, ancho23 en uno de ellos, ancho 27 en otro.

Ahora esta es la parte inteligente. Con la etiqueta col, puede aplicar anchuras solo una vez en lugar de cada celda. Sé que puede aplicar anchuras a solo la primera fila, y establecerán los anchos para la misma celda en cada dos filas, pero la etiqueta col se puede usar también para establecer otras propiedades. Por ejemplo:

<table class="width100"> 
    <col class="width15" style="background-color: #cccccc;" /> 
    <col class="width65" /> 
    <col class="width10" /> 
    <col class="width10" /> 
    <tr> 
     <td>My Sample Name</td> 
     <td>My Sample Long Description</td> 
     <td>5</td> 
     <td>2010-Oct-08</td> 
    </tr> 
</table> 

generalmente prefiero utilizar esta técnica - pero si se trata de un diseño que va a utilizar en varias tablas (por ejemplo, la tabla de clientes puede ser el mismo diseño que la tabla agentes) entonces lo haré crea una clase para cada columna y establece el ancho, etc. en esa clase. Luego aplicaré la clase relevante a cada celda. Supongo que ambos métodos podrían combinarse: la clase relevante podría aplicarse a la columna relevante, pero el hecho de que las propiedades estén establecidas en un solo lugar (la hoja de estilos) significa que solo tiene que cambiarla en una ubicación.

Espero que esto ayude y que es lo que estás buscando.

Richard

+2

¿Qué pasa con el voto a favor? Es perfectamente relevante para la pregunta y es una solución muy rápida ... Desearía que fuera obligatorio para las personas decir POR QUÉ downvoted ... – ClarkeyBoy

+2

Probablemente porque agrega un montón de código superfluo a su CSS que debe transferirse al cliente. No es semántico. Y la etiqueta no funciona al 100%. –

+0

Pero apenas afecta la velocidad de carga de la página, personalmente no me importa la cantidad de código que tienen que descargar mis sitios, si puedo cargarlos rápidamente en mi computadora (con una velocidad máxima de banda ancha de 50 kb por segundo), entonces lo suficientemente cerca poder. Si se carga rápido en mi máquina, entonces estoy contento. – ClarkeyBoy

Cuestiones relacionadas