En una tabla HTML, el cellpadding
y cellspacing
se puede establecer así:
<table cellspacing="1" cellpadding="1">
¿Cómo se puede lograr lo mismo usando CSS?
html
css
html-table
alignment
kokos
fuente
fuente
width:auto
entoncesborder-collapse
podría no funcionar como se esperaba.Respuestas:
Lo esencial
Para controlar "cellpadding" en CSS, simplemente puede usar
padding
en las celdas de la tabla. Por ejemplo, para 10px de "cellpadding":Para el "espacio de celdas", puede aplicar la
border-spacing
propiedad CSS a su tabla. Por ejemplo, para 10px de "espaciado de células":Esta propiedad incluso permitirá un espaciado horizontal y vertical por separado, algo que no podría hacer con el "espacio de celdas" de la vieja escuela.
Problemas en IE <= 7
Esto funcionará en casi todos los navegadores populares, excepto en Internet Explorer hasta Internet Explorer 7, donde casi no tienes suerte. Digo "casi" porque estos navegadores aún admiten la
border-collapse
propiedad, que fusiona los bordes de las celdas de tabla adyacentes. Si está tratando de eliminar el espacio entre celdas (es decir,cellspacing="0"
)border-collapse:collapse
debería tener el mismo efecto: no hay espacio entre las celdas de la tabla. Sin embargo, este soporte tiene errores, ya que no anula uncellspacing
atributo HTML existente en el elemento de la tabla.En resumen: para los navegadores que no son de Internet Explorer 5-7, lo
border-spacing
maneja. Para Internet Explorer, si su situación es correcta (desea 0 espacios de celdas y su tabla no lo tiene definido), puede usarloborder-collapse:collapse
.Nota: Para obtener una excelente descripción general de las propiedades CSS que se pueden aplicar a las tablas y para qué navegadores, consulte esta fantástica página de Quirksmode .
fuente
Defecto
El comportamiento predeterminado del navegador es equivalente a:
Cellpadding
Establece la cantidad de espacio entre el contenido de la celda y la pared de la celda.
Espaciamiento celular
Controla el espacio entre las celdas de la tabla.
Ambos
Ambos (especial)
¡Inténtalo tú mismo!
Aquí puede encontrar la antigua forma HTML de lograr esto.
fuente
fuente
cellspacing=0
equivalente El equivalente paracellspacing=1
es completamente diferente. Ver la respuesta aceptada.table td
ytable th
solo sertd
yth
respectivamente? Funciona de cualquier manera, pero un selector más pequeño significa una coincidencia ligeramente más rápidatable > tr > td
ytable > tr > th
. Esto es casi tan rápido comotr
yth
, y está garantizado que funcionará si tiene una tabla anidada. Just my 2ctable
necesita el selector? IIRC, a<td>
no es válido a menos que esté dentro de a<tr>
.Establecer márgenes en las celdas de la tabla realmente no tiene ningún efecto hasta donde yo sé. El verdadero equivalente CSS para
cellspacing
esborder-spacing
, pero no funciona en Internet Explorer.Puede usar
border-collapse: collapse
para establecer de manera confiable el espacio entre celdas en 0 como se mencionó, pero para cualquier otro valor, creo que la única forma de navegador cruzado es seguir usando elcellspacing
atributo.fuente
border-collapse
solo funciona en IE 5-7 si la tabla aún no tiene uncellspacing
atributo definido. He escrito una respuesta integral que combina todas las partes correctas de las otras respuestas en esta página en caso de que sea útil.Este truco funciona para Internet Explorer 6 y versiones posteriores, Google Chrome , Firefox y Opera :
La
*
declaración es para Internet Explorer 6 y 7, y otros navegadores lo ignorarán correctamente.expression('separate', cellSpacing = '10px')
devuelve'separate'
, pero ambas declaraciones se ejecutan, ya que en JavaScript puede pasar más argumentos de los esperados y todos serán evaluados.fuente
Para aquellos que desean un valor de espacio de celdas distinto de cero, el siguiente CSS funcionó para mí, pero solo puedo probarlo en Firefox.
Consulte el enlace Quirksmode publicado en otro lugar para obtener detalles de compatibilidad. Parece que puede no funcionar con versiones anteriores de Internet Explorer.
fuente
La solución simple a este problema es:
fuente
Además, si lo desea
cellspacing="0"
, no olvide agregarborder-collapse: collapse
en sutable
hoja de estilo.fuente
Envuelva el contenido de la celda con un div y puede hacer lo que quiera, pero debe envolver cada celda en una columna para obtener un efecto uniforme. Por ejemplo, para obtener márgenes más amplios de izquierda y derecha:
Entonces el CSS será,
Sí, es una molestia. Sí, funciona con Internet Explorer. De hecho, solo he probado esto con Internet Explorer, porque eso es todo lo que podemos usar en el trabajo.
fuente
Solo use
border-collapse: collapse
para su mesa, ypadding
parath
otd
.fuente
Este estilo es para el reinicio completo de las tablas : relleno de celdas , espaciado de celdas y bordes .
Tenía este estilo en mi archivo reset.css:
fuente
TBH. Para todos los fannying con CSS, también podrías usar
cellpadding="0"
cellspacing="0"
ya que no están en desuso ...Cualquier otra persona que sugiera márgenes
<td>
obviamente no ha intentado esto.fuente
fuente
Simplemente use reglas de relleno CSS con datos de tabla:
Y para el espacio entre bordes:
Sin embargo, puede crear problemas en versiones anteriores de navegadores como Internet Explorer debido a la implementación de diferencias del modelo de caja.
fuente
Por lo que entiendo de las clasificaciones W3C es que
<table>
s están destinados a mostrar datos 'solo'.En base a eso, encontré que era mucho más fácil crear una
<div>
con los fondos y todo eso y tener una tabla con datos flotando sobre ella usandoposition: absolute;
ybackground: transparent;
...Funciona en Chrome, Internet Explorer (6 y posterior) y Mozilla Firefox (2 y posterior).
Se utilizan márgenes (o significan todos modos) para crear un separador entre elementos de recipiente, como
<table>
,<div>
y<form>
, no<tr>
,<td>
,<span>
o<input>
. Usarlo para algo que no sea elementos de contenedor lo mantendrá ocupado ajustando su sitio web para futuras actualizaciones del navegador.fuente
CSS:
fuente
Puede configurar fácilmente el relleno dentro de las celdas de la tabla utilizando la propiedad de relleno CSS. Es una forma válida de producir el mismo efecto que el atributo cellpadding de la tabla.
De manera similar, puede usar la propiedad de espaciado de borde de CSS para aplicar el espaciado entre los bordes de celda de la tabla adyacentes como el atributo de espaciado de celdas. Sin embargo, para trabajar el espacio entre bordes, el valor de la propiedad de colapso del borde debe estar separado, lo cual es predeterminado.
fuente
Prueba esto:
O prueba esto:
fuente
Solía
!important
después del colapso de la frontera comoy me funciona en IE7. Parece anular el atributo de espacio de celdas.
fuente
!important
solo sería necesario para anular otras configuraciones de CSS en una situación compleja (e incluso, en su mayoría, un enfoque incorrecto).!important
, que podría haberse incluido como un comentario en lugar de otra respuesta.cell-padding
se puede darpadding
en CSS, mientras quecell-spacing
se puede configurar estableciendoborder-spacing
de la tabla.Violín .
fuente
Si
margin
no funciona, intenta establecerdisplay
detr
ablock
y luego funcionará margen.fuente
Para las tablas, el espacio entre celdas y el relleno de celdas son obsoletos en HTML 5.
Ahora para el espaciado de celdas debe usar el espaciado de bordes. Y para el relleno de celdas, debe usar el colapso del borde.
Y asegúrese de no usar esto en su código HTML5. Siempre trate de usar estos valores en un archivo CSS 3.
fuente
fuente
En una tabla HTML, el
cellpadding
ycellspacing
se puede establecer así:Para relleno de celdas :
Simplemente llame al
td/th
celular simplepadding
.Ejemplo:
Mostrar fragmento de código
Para espaciamiento celular
Solo llama simple
table
border-spacing
Ejemplo:
Mostrar fragmento de código
Más estilo de tabla por enlace fuente CSS aquí obtienes más estilo de tabla por CSS .
fuente
Simplemente puede hacer algo como esto en su CSS, usando
border-spacing
ypadding
:fuente
¿Qué tal si agrega el estilo directamente a la tabla en sí? Esto es en lugar de usarlo
table
en su CSS, que es un enfoque MALO si tiene varias tablas en su página:fuente
td { padding: ... }
otable { border-spacing: ... }
, en lugar de aplicarla directamente a la tabla. Esos no agregan nada. Como dije, cuando tienes varias tablas en tu página y no quieres afectarlas, ¡no quieres hacerlo! No necesitamos una página completa de respuestas que diga "¡Use la hoja de estilo!", Cuando tal vez sea lo último que desea, porque solo desea formatear para una celda o tabla. Eso es cuando aplicarlotable
otd
es indeseable y crear una clase completamente nueva para él es excesivo.table#someId
).Sugiero esto y todas las celdas de la tabla en particular se efectúan.
fuente
Puede verificar el siguiente código, simplemente cree un
index.html
y ejecútelo.SALIDA
fuente