Comment puis-je forcer un TD sans contenu à rendre sa bordure?
-
03-07-2019 - |
Question
Le TD a une DIV à l'intérieur de laquelle j'ai enlevé en utilisant la fonction fadeOut de jQuery, mais quand il est terminé, la bordure disparaît aussi.
Je veux éviter cela, existe-t-il un autre moyen que d'ajouter un & "; & amp; nbsp; &"; (ce qui la rend moche)?
EDIT: j'utilise Internet Explorer (6 et 7)
La solution
CSS:
table {
empty-cells: show;
}
Vous devez également mettre IE en mode de rendu standard pour que cela fonctionne. Après avoir ajouté un type de document, au moins IE8 (version bêta 2 et ultérieure) est bien joué.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
IE7 et les versions antérieures ne le feront toujours pas. La prise en charge de empty-cells
est dite & Quot; partielle & Quot; (pour IE7 et IE8 bêta 1) sur la compatibilité MS CSS déclaration . Quoi que ce soit & Quot; partiel & Quot; signifie, ne pas mettre en œuvre " montrer " peut difficilement être appelé & "Support partiel &"; Ces navigateurs peuvent être contraints de dessiner les bordures des cellules en les réduisant généralement:
table {
border-collapse: collapse;
}
Le réglage de <=> est ignoré. Mais une fois que vous réduisez les bordures, vous n’avez de toute façon pas besoin de le définir, car tous les navigateurs afficheront les bordures réduites.
Autres conseils
< td style = & "taille de police: 1pt &"; > &; nbsp; < td >
Ajoutez un espace insécable à la cellule:
<td> </td>
Un hack, mais un meilleur hack que d'ajouter une image.
J'ai fini par ajouter une image transparente 1px à la cellule comme suggéré par Jukka & "Yucca &"; Korpela . Pour le moment, j'utiliserai cette solution s'il n'y a pas de meilleure alternative
Donc si vous avez un tableau comme ci-dessous:
<table border="1">
<tr>
<td>Breakfast</td>
<td><div id="foo">Lunch</div></td>
<td>Dinner</td></tr>
</table>
Et vous fadeOut, avec jQuery, Lunch, pourquoi ne pas ramener un rien vierge avec fadeIn?
Comme ci-dessous:
$("#foo").fadeOut("slow").html('').fadeIn("fast");
En fonction de vos objectifs, vous pouvez définir la propriété visibility
- de la div sur hidden
au lieu de définir sa propriété display
- sur none
, ce qui signifie que vous devez restaurez opacity
et et définissez <=> manuellement après l'appel à <=>. fadeOut()