keewee279
Tengo una gran tabla HTML que se crea dinámicamente. La mesa tiene una estructura estándar, incl. colgroup
, thead
y tbody
y los siguientes estilos.
Hasta ahora, todo funciona según lo previsto, pero cuando agrego la clase “bgGrey” a los TD en una columna (ver a continuación) para darle a las celdas de esta columna un color de fondo (que solo se necesita en una columna), entonces todos los bordes de esta columna desaparecen en IE11excepto por el borde izquierdo, y el :hover::before
el estilo ya no funciona en Chrome (versión 43).
Sin agregar la clase "bgGrey"
No tengo problemas en ambos navegadores.
Parece que de alguna manera el color de fondo se superpone al borde causando esto.
Mi CSS (parte relevante):
#myTable, #myTable tbody, #myTable thead, #myTable tr {
width: 100%;
}
#myTable, #myTable th, #myTable td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative;
}
#myTable {
font-size: 14px;
table-layout: fixed;
}
#myTable th.editable:hover::before, #myTable td.editable:hover::before {
border: 1px solid blue;
content: '';
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
z-index: -1;
}
#myTable .th1 {
padding: 2px;
}
#myTable .th2 {
font-weight: normal;
}
.bgGrey {
background-color: #e6e6e6;
}
Mi HTML (ejemplo TR):
<tr>
// ...
<td class="editable"><div contenteditable="true"></div></td>
<td class="bgGrey editable txtCenter"><div contenteditable="true"></div></td>
<td class="editable txtRight"><div contenteditable="true"></div></td>
// ...
</tr>
puslé
Acabo de encontrarme con este problema, pero no me gustó la solución presentada aquí, así que seguí buscando en Google. Encontré esta respuesta: https://stackoverflow.com/a/16337203/1156476
Aquí, una simple adición a la celda de la tabla corrige los bordes:
table td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative;
background-clip: padding-box; /* Add this line */
}
Compruebe el soporte del navegador en Puedo usar
Y una explicación de la propiedad se puede encontrar en estandarista
-
La explicación vinculada me da una advertencia de seguridad, aquí hay un artículo en MDN developer.mozilla.org/en-US/docs/CSS/background-clip
– zr0gravity7
18 de enero de 2022 a las 5:03
Raúl S
Por favor eliminar border-collapse: collapse;
de #myTable td
, lo que hace que el borde desaparezca. Evita dar eso por td
.
Añadir así en su lugar:
#myTable, #myTable th, #myTable td {
border: 1px solid #000;
border-collapse: collapse;
margin: 0;
padding: 4px;
position: relative; //REMOVE THIS
}
Además, ¿puede intentar eliminar “posición: relativa” del CSS?
-
Gracias por esto. Lo intenté pero esto no lo cambia.
– keewee279
5 de junio de 2015 a las 16:59
-
¿Puedes compartir la URL?
– Raúl S.
5 de junio de 2015 a las 17:01
-
Lo siento, en este caso no puedo porque el código es demasiado grande y la tabla se crea dinámicamente, pero todos los TR están configurados de la misma manera y publiqué todos los estilos relevantes.
– keewee279
5 de junio de 2015 a las 17:04
-
Oh, si la URL está ahí, creo que será fácil de editar y mostrarte que prueba y error, por eso
– Raúl S.
5 de junio de 2015 a las 17:07
-
¿Intentó eliminar la posición: css relativo dado?
– Raúl S.
5 de junio de 2015 a las 17:13