En mi documento HTML, tengo una tabla con dos columnas y varias filas. ¿Cómo puedo aumentar el espacio entre la primera y la segunda columna con css? Intenté aplicar "margin-right: 10px;" a cada una de las celdas del lado izquierdo, pero sin efecto.
95
Respuestas:
Aplica esto a tu primera
<td>
:Ejemplo HTML:
fuente
border-collapse: separate
(hubo un error tipográfico en la ortografíaseparate
anterior)border-spacing: 5px;
border-spacing
también agrega espacio entre filas. Desafortunadamente, no existe una propiedad separada para el espaciado vertical y horizontal.border-spacing
toma dos argumentos: uno para horizontal y otro para vertical.Una advertencia: aunque
padding-right
podría resolver su problema (visual) particular, no es la forma correcta de agregar espacio entre las celdas de la tabla. Lo quepadding-right
hace para una celda es similar a lo que hace para la mayoría de los otros elementos: agrega espacio dentro la celda. Si las celdas no tienen un borde o un color de fondo o algo más que delata el juego, esto puede imitar el efecto de establecer el espacio entre las celdas, pero no de otra manera.Como señaló alguien, las especificaciones de margen se ignoran para las celdas de la tabla:
Especificación CSS 2.1 - Tablas - Diseño visual del contenido de la tabla
Entonces, ¿cuál es la forma "correcta"? Si está buscando reemplazar el
cellspacing
atributo de la tabla, entoncesborder-spacing
(conborder-collapse
deshabilitado) es un reemplazo. Sin embargo, si se requieren "márgenes" por celda, no estoy seguro de cómo se puede lograr correctamente usando CSS. El único truco que se me ocurre es usarlopadding
como se indicó anteriormente, evitar cualquier estilo de las celdas (colores de fondo, bordes, etc.) y, en su lugar, usar contenedores DIV dentro de las celdas para implementar dicho estilo.No soy un experto en CSS, por lo que podría estar equivocado en lo anterior (¡lo cual sería genial saber! Yo también me gustaría una solución CSS de margen de celda de tabla).
¡Salud!
fuente
Si no puede usar relleno (por ejemplo, tiene bordes en td) intente esto
fuente
Me doy cuenta de que esto es bastante tardío, pero para el registro, también puede usar selectores de CSS para hacer esto (eliminando la necesidad de estilos en línea). Este CSS aplica relleno a la primera columna de cada fila:
¡Y este sería tu HTML, sin CSS !:
Esto permite un marcado mucho más elegante, especialmente en los casos en los que necesita hacer muchos formatos específicos con CSS.
fuente
El margen no funciona desafortunadamente en celdas individuales, sin embargo, puede agregar columnas adicionales entre las dos celdas entre las que desea poner un espacio ... otra opción es usar un borde con el mismo color que el fondo ...
fuente
Simplemente puede hacer eso:
No se requiere CSS :) Este 10px es tu espacio.
fuente
Prueba
padding-right
. No está permitido ponermargin
's entre celdas.fuente
Usando border-collapse: separado; no funcionó para mí, porque solo necesito un margen entre las celdas de la tabla, no en los lados de la tabla.
Se me ocurrió la siguiente solución:
- CSS
- HTML
fuente
Esta solución funciona para
td
los que necesitan tantoborder
comopadding
para estilizar.(Probado en Chrome 32, IE 11, Firefox 25)
Actualizado 2016
Firefox ahora lo admite sin
inline-block
y un conjuntowidth
fuente
No puede seleccionar columnas individuales en una celda de esa manera. En mi opinión, su mejor opción es agregar a
style='padding-left:10px'
en la segunda columna y aplicar los estilos en un elemento o div interno. De esta forma puedes lograr la ilusión de un espacio mayor.fuente
Si tiene el control del ancho de la tabla, inserte un relleno a la izquierda en todas las celdas de la tabla e inserte un margen negativo a la izquierda en toda la tabla.
Tenga en cuenta que el ancho de la tabla debe incluir el ancho del margen / relleno. Usando lo anterior como ejemplo, el ancho visual de la tabla será 700px.
Esta no es la mejor solución si está utilizando bordes en las celdas de su tabla.
fuente
SOLUCIÓN
Encontré que la mejor manera de resolver este problema era una combinación de prueba y error y leer lo que estaba escrito antes que yo:
http://jsfiddle.net/MG4hD/
Como puede ver, tengo algunas cosas bastante complicadas ... pero el factor principal para que esto se vea bien es:
ELEMENTO DE LOS PADRES (UL): colapso de borde: separado; espaciado de bordes: .25em; margen izquierdo: -.25em;
ELEMENTOS INFANTILES (LI): display: table-cell; alineación vertical: medio;
HTML
CSS
fuente
Siguiendo la solución de Cian de establecer un borde en lugar de un margen, descubrí que puede establecer el color del borde en transparente para evitar tener que igualar el color del fondo. Funciona en FF17, IE9, Chrome v23. Parece una solución decente siempre que no necesite un borde real.
fuente
Usar relleno no es la forma correcta de hacerlo, puede cambiar el aspecto pero no es lo que querías. Esto puede resolver su problema.
fuente
Puedes usar ambos:
Pero es mejor usarlo con % .
fuente
%
Si el relleno no le funciona, otra solución es agregar columnas adicionales y establecer un margen mediante el ancho
<colgroup>
. Ninguna de las soluciones de relleno anteriores funcionó para mí ya que estaba tratando de darle un margen al borde de la celda, y esto es lo que resolvió el problema al final:Diseñe los bordes de las celdas de la tabla usando: nth-child para que la segunda y tercera columnas parezcan ser una sola columna.
fuente