¿Hay alguna forma, mediante CSS, de mostrar los bordes en una tabla solo entre columnas (no en los bordes exteriores)?CSS: bordes entre columnas de la tabla solo
Respuesta
No sin los extraños selectores de CSS y marcas adicionales y cosas por el estilo.
Algo como esto podría hacer (usando selectores CSS):
table {
border:none;
border-collapse: collapse;
}
table td {
border-left: 1px solid #000;
border-right: 1px solid #000;
}
table td:first-child {
border-left: none;
}
table td:last-child {
border-right: none;
}
Editar
Para aclarar comentario golpe de @ Jeroen, todo lo que se necesitaría es:
table { border: none; border-collapse: collapse; }
table td { border-left: 1px solid #000; }
table td:first-child { border-left: none; }
Puedo estar simplificando el problema, pero ¿funciona td {border-right: 1px solid red;} para la configuración de la tabla?
No, porque entonces habrá una frontera a la derecha de la tabla. No quiero un borde en el borde derecho o izquierdo de la tabla, solo entre columnas. – dmr
Si aplica una clase a su columna final, puede eliminar la declaración de frontera de la final. Requiere un ajuste manual, pero si se trata de una página estática, en realidad es la mejor solución. – hollsk
Los bordes en las tablas siempre son un poco escamosos. Una posibilidad sería agregar una declaración de borde-derecha a cada celda de la tabla, excepto las que están en la columna de la derecha. Si está utilizando cualquier tipo de espacio de tabla, esto no funcionará muy bien.
Otra opción sería usar una imagen de fondo de 1px de alto con los bordes en su interior, pero eso solo funcionará si puede garantizar el ancho de cada celda en todo momento.
Otra posibilidad es experimentar con colgroup/col. Esto tuvo bastante mala compatibilidad con el navegador cruzado la última vez que lo miré pero podría haber mejorado desde entonces: http://www.webmasterworld.com/forum83/6826.htm
Este es un consejo bastante terrible - CSS ofrece una manera fácil para relativamente reciente (IE8 +) de lograr esto de manera elegante. – Maverick
Tenga en cuenta que esta respuesta (y la pregunta) son ambas de 2010, hace una década, cuando IE6 todavía estaba bajo soporte activo para muchos desarrolladores. Además, los métodos de CSS para lograr los bordes de la tabla en ese momento eran imposibles para casi todos los procesadores de correo electrónico HTML disponibles. ¡Gracias por la nigromancia! – hollsk
Jaja, no me di cuenta, ya que la respuesta aceptada fue editada hace solo unas semanas :). – Maverick
No hay una manera fácil de hacer esto, aparte de hacer algo como class = "lastCell" en la última td en cada tr y, a continuación, establecer el CSS de esta manera:
#table td {
border-right: 5px solid red
}
.lastCell {
border-right: none;
}
Es necesario configurar un border-right
en el TD de entonces apuntar a los últimos TDS en una fila para fijar la frontera para none
. Maneras de dirigir:
- Conjunto una clase en la última
td
de cada fila y el uso que - si se trata de un número determinado de células y solamente la orientación más nuevos navegadores luego 3 células de ancho pueden utilizar
td + td + td
- O mejor (con nuevos navegadores)
td:last-child
he usado esto en una hoja de estilo por tres columnas separadas por bordes verticales y funcionó bien:
#column-left {
border-left: 1px solid #dddddd;
}
#column-center {
/*no border needed/*
}
#column-right {
border-right: 1px solid #dddddd;
}
La columna de la izquierda tiene un borde a la derecha, la columna de la derecha tiene un borde a la izquierda y la columna central ya está ocupada por la izquierda y la derecha.
Si sus columnas están dentro de un div/wrapper/table/etc ... no se olvide de agregar espacio adicional para acomodar el ancho de los bordes.
Sé que esto es una cuestión de edad, pero no es un simple, una solución de línea que trabaja constantemente para Chrome, Firefox, etc., Así como Internet Explorer 8 y superiores (y, en su mayor parte, funciona en IE7 también - ver http://www.quirksmode.org/css/selectors/ para más detalles):
table td + td { border-left:2px solid red; }
La salida es algo como esto:
Col1 | Col2 | Col3
Lo está haciendo que esto funcione es que está definiendo un borde solo en celdas de tabla que están adyacentes a otra celda de tabla. En otras palabras, está aplicando el CSS a todas las celdas de una fila, excepto la primera.
Al aplicar un borde izquierdo al segundo hasta el último elemento secundario, da la apariencia de que la línea está "entre" las celdas.
Dentro <td>
, utilice style="border-left:1px solid #colour;"
Creo que el espíritu de la pregunta es 'usar CSS para dar estilo a la tabla' en lugar de poner CSS en lugares específicos. – Rup
de rules
Ver tabla de atributos - https://www.w3.org/TR/html401/struct/tables.html#h-11.3.1
- 1. Espacio entre los bordes de la tabla CSS dentro de
- 2. Espacios entre las filas de la tabla con bordes en CSS
- 3. Eliminar bordes de celda de tabla no deseados con CSS
- 4. La tabla HTML necesita espacio entre columnas, no filas
- 5. ¿Es posible ocultar/mostrar columnas de tabla cambiando solo la clase CSS en el elemento col?
- 6. alinee 2 anchos de columnas de la tabla entre sí
- 7. ¿Cómo suprimir espaciado de bordes en la tabla
- 8. Cómo eliminar por completo los bordes de la tabla HTML
- 9. Columnas de tabla redimensionables
- 10. CSS estilo de tabla-como
- 11. CSS a: situar los bordes de la imagen
- 12. jQuery resaltando columnas seleccionadas solo en una tabla
- 13. Eliminar el espacio entre los bordes verticales de la tabla <td> s
- 14. TABLA sin bordes de celda verticales
- 15. ¿Cómo buscar solo columnas específicas de una tabla en django?
- 16. CSS ul li: Evitar bordes dobles
- 17. Bordes aplicando color de fuente en CSS
- 18. Error de columnas CSS: conteo de 5 columnas que solo muestra 4 (con imágenes)
- 19. Encontrar la intersección entre dos columnas
- 20. Uso de CSS para cambiar solo la 2ª columna de una tabla
- 21. ¿Por qué no se permiten las columnas de la tabla de estilo?
- 22. Desaparición de bordes de celda de tabla CSS en navegadores basados en Gecko
- 23. ¡IE7 está haciendo mi vida miserable! Obtener espacios entre las columnas de la tabla html (w/colspan) con css alternar
- 24. CSS: Ancho en porcentaje y Bordes
- 25. Relleno predeterminado de la tabla CSS o margen
- 26. Cambiar columnas de la tabla orden
- 27. Varias columnas en la vista de tabla
- 28. 3D CSS, los bordes dentados en Firefox
- 29. CSS - sencillo de dos columnas
- 30. CSS - Columnas de fluido fijo
Nota: IE6-8 no admite ': last-child' (y spotty on': first-child' según http://www.quirksmode.org/css/contents.html – ScottS
Simplemente use un borde izquierdo, luego no hay necesidad de ': last-child'. – jeroen
@jereon: Es cierto, realmente no lo pensé todo el camino. Pero el punto básico es el mismo. – rossipedia