Diese position: absolute;
divs, die in / um ein position: relative;
parent platziert sind, erhalten Höhe / Breite von der Größe und Länge des enthaltenen Textes.
Wenn jedoch einer von ihnen über den rechten Rand des relativen übergeordneten Elements hinausgeht, scheint seine Breite abgeschnitten zu sein.
Wie kann ich das div, das sich über die rechte Seite des relativen Elternteils hinaus verhält, wie die anderen verwenden, die nicht nur CSS verwenden? (Sollte in allen gängigen Browsern funktionieren, einschließlich Edge, aber nicht IE)
Hier ist eine Geige , aber ich werde auch den Code + Screenshot unten kopieren:
HTML:
%Vor%... und die Stile. Beachten Sie, dass die absolute div-Breite vor dem Wickeln maximal 200 Pixel erreichen soll. Andernfalls sollte die Breite durch die Länge des enthaltenen Textes bestimmt werden:
%Vor% Dieses Problem trat beim Implementieren eines Tooltips auf, der sich, wenn er von einem Entwickler verwendet wird, selbst als WRT positionieren muss. offsetParent
(oder der Hauptteil, wenn in seinem DOM-Zweig kein vorangestelltes offsetParent
existiert).
Bearbeiten: Wie kann ich das gewünschte Verhalten nur mit CSS erreichen?
Die Lösung muss in allen gängigen Browsern funktionieren, einschließlich Edge, aber nicht IE. Und um es noch einmal zu wiederholen, die width
der absoluten divs 'können nicht vorhergesagt werden, da sie durch die Länge der Texte bestimmt werden sollte ... die einzige Ausnahme ist, dass es ein max-width
geben wird (in diesem Beispiel ist es das) 200px).
Für das #absolute-problem
div wird links ein bestimmter Wert, ein auto
width und ein auto
right festgelegt. Laut dieser Regel in §10.3.7 der Spezifikation , dies würde die Breite der div verkleinern, um ihren Inhalt anzupassen.
'Breite' und 'rechts' sind 'automatisch' und 'links' ist nicht 'automatisch', dann wird die Breite verkleinert. Dann löse nach "rechts".
Obwohl es keine zuverlässige Möglichkeit gibt, das genaue gewünschte Verhalten zu erreichen (da für die Berechnung der Breite nicht genügend Eigenschaften definiert sind), gibt es einige Möglichkeiten, dieses Problem zu umgehen.
width
für das absolute div Eine triviale Lösung wäre, seine Breite so einzustellen, dass sie nicht schrumpft .
%Vor%
right
für das absolute div Es ist die Breite deines Divs unbekannt, eine Möglichkeit, das zu umgehen, ist es, auch right
zu setzen. Dies passt die Breite deines Divs entsprechend an.
width
auf fit-content
/ max-content
Ein anderer Weg wäre die Verwendung von fit-content
oder max-content
( begrenzt Browserkompatibilität ) für das absolute div, anstatt dessen right
einzustellen. Dies hilft, wenn der Inhalt Ihres div nicht unbedingt bis zur maximalen Breite reicht.
min-width
und max-width
Ein realistischer Ansatz wäre es, die Größe innerhalb eines gegebenen Bereichs anzupassen, um den Überlauf in Schach zu halten.
%Vor%
Tags und Links html css css-position