Wie kann ich einen TD ohne Inhalt erzwingen, um seine Grenze zu rendern?
-
03-07-2019 - |
Frage
Der TD hat eine DIV im Inneren, die ich mit JQuery's Fadeout -Funktion entfernt habe, aber wenn sie fertig ist, verschwindet auch die Grenze.
Ich möchte das vermeiden, gibt es eine andere Möglichkeit, als ein "" hinzuzufügen (was es hässlich ist)?
Bearbeiten: Ich verwende Internet Explorer (6 und 7)
Lösung
CSS:
table {
empty-cells: show;
}
Sie müssen auch den IE in Standards -Rendering -Modus einsetzen, damit dies funktioniert. Nach dem Hinzufügen eines DocType spielt mindestens IE8 (Beta 2 und höher) gut.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
IE7 und unten wird es immer noch nicht tun. Unterstützung für empty-cells
soll "teilweise" sein (für IE7 und IE8 Beta 1) auf Die MS CSS -Kompatibilitätserklärung. Was auch immer "partiell" bedeutet, die "Show" nicht implementieren, kann kaum als "teilweise Unterstützung" bezeichnet werden. Diese Browser können gezwungen werden, die Zellgrenzen zu zeichnen, indem sie im Allgemeinen einstürzende Tischgrenzen stürzen:
table {
border-collapse: collapse;
}
Die Einstellung von empty-cells
wird ignoriert. Aber sobald Sie die Grenzen zusammenbrechen, müssen Sie dies sowieso nicht festlegen, da alle Browser zusammengebrochene Grenzen anzeigen.
Andere Tipps
u003Ctd style="font-size: 1pt"> u003Ctd>
Fügen Sie der Zelle einen nicht sprechenden Raum hinzu:
<td> </td>
Ein Hack, aber ein besserer Hack als ein Bild hinzuzufügen.
Am Ende habe ich der Zelle ein transparentes 1px -Bild als hinzugefügt vorgeschlagen von Jukka "Yucca" Korpela. Im Moment werde ich diese Lösung verwenden, wenn es keine bessere Alternative gibt
Also, wenn Sie eine Tabelle wie unten haben:
<table border="1">
<tr>
<td>Breakfast</td>
<td><div id="foo">Lunch</div></td>
<td>Dinner</td></tr>
</table>
Und Sie verblassen mit JQuery, Mittagessen, warum nicht mit Fadein ein leeres Nichts zurückbringen?
Wie unten:
$("#foo").fadeOut("slow").html('').fadeIn("fast");
Je nachdem, was genau Sie erreichen möchten, könnten Sie die festlegen visibility
-Property of the Div zu hidden
anstatt seine festzustellen display
-Property zu none
, dh du müsstest du wiederherstellen display
und und set opacity
visibility
manuell nach dem Anruf an fadeOut()
.