Ich habe eine <td>
, die eine <div>
enthält, wo die div ist absolut positioniert. Die <td>
wird dann auf 0 gesetzt, indem die Höhe height, line-height, border, and padding-top/padding-bottom
CSS-Eigenschaften auf 0.Absolute Position Div verhindert, dass td auf 0 Höhe in Firefox
Das Ergebnis, wenn es mit einer Reihe von anderen Elementen und Javascript kombiniert, die keinen Einfluss auf die Ausgabe aufweisen, ist eine Kopfzeile, die gut schweben über der Tabelle, während sie korrekt mit den Tabellenspalten ausgerichtet bleibt.
Dies funktioniert in jedem Browser und Betriebssystem, mit dem ich testen konnte (Safari, Chrome, IE unter Windows und Mac), außer Firefox. In Firefox die <tr>
enthält die 0 Höhe <td>
in Frage ist als 4 Pixel hoch - aber nur, wenn die <div>
innen ein position
Attribut von absolute
oder fixed
hat. Wenn ich beispielsweise position
von relative
verwende, wird die Zeile korrekt auf 0px high reduziert. Natürlich brauche ich eine Position von absolute
auf dem Div, um alles andere zu arbeiten.
Wie kann ich auch Firefox erhalten, um die <tr>
/<td>
richtig zu reduzieren?
html:
<table id="zeroHeight">
<tr>
<td>
Some Content that should disappear
<div>Content that should have no background</div>
</td>
</tr>
</table>
CSS:
#zeroHeight tr{
background-color:lightblue;
}
#zeroHeight tr td{
height:0px;
padding-top:0px;
padding-bottom:0px;
line-height:0px;
border:0px;
color:transparent;
white-space: nowrap;
}
#zeroHeight td div{
position:absolute;
color:black;
}
HINWEIS: Das Problem hier ist nicht mit der Positionierung des absoluten DIV. Das funktioniert gut, deshalb habe ich im Beispiel keine Positionierung berücksichtigt. Das Problem ist, dass die <TD>/<TR>
nicht richtig auf Null Höhe nicht kollabiert nach unten, wie durch die sichtbare Hintergrundfarbe zu dem <tr>
EDIT angewandt angezeigt: Das Problem hier ist die Nicht-Null Höhe des td
/tr
, nicht sichtbar Hintergrundfarbe. Die Hintergrundfarbe in der Zeile ist einfach eine einfache Möglichkeit, das Problem sichtbar zu machen.
Haben Sie versucht, die Marge auf 0 und Einstellung? Es könnte auch mit bestimmten Anzeigeinterpretationen mit Leerraum zu tun haben (wie es bei Inline-Block-Elementen der Fall ist). Siehe https://css-tricks.com/fighting-the-space-between-inline-block-elements/ – smrubin
Auch könnte relevant sein: https://davidwalsh.name/table-cell-position-absolute – smrubin
Sie könnten einstellen 'font-size: 0' auf dem' td', aber Sie müssten dann explizit eine Schriftgröße auf dem 'div' setzen: https://jsfiddle.net/enpoe4yd/ –