Position absolut und Überlauf ausgeblendet


134

Wir haben zwei DIVs, eine in die andere eingebettet. Wenn der äußere DIV nicht absolut positioniert ist, gehorcht der innere DIV, der absolut positioniert ist, nicht dem Überlauf, der dem äußeren DIV verborgen ist ( Beispiel ).

Gibt es eine Chance, dass der innere DIV dem vom äußeren DIV verborgenen Überlauf gehorcht, ohne den äußeren DIV auf die absolute Position zu setzen (da dies unser gesamtes Layout durcheinander bringt)? Auch die relative Position für unseren inneren DIV ist keine Option, da wir aus einer Tabelle TD "herauswachsen" müssen ( Beispiel ).

Gibt es noch andere Möglichkeiten?

Antworten:


282

Machen Sie äußere <div>zu position: relativeund innere <div>zu position: absolute. Es sollte für Sie funktionieren.


5
Vielen Dank an euch beide. Ich dachte immer Position: Relativ ist die Standardeinstellung. Ich habe gerade erfahren, dass statisch die Standardeinstellung ist. Ich akzeptiere Shankhans Antwort, da beide Antworten gleichwertig sind und Shankhan noch einige Punkte braucht ;-)
Zardoz

7
Eine Erklärung und / oder Dokumentation wäre eine großartige Ergänzung.
Showdev

25

Was ist mit position: relativedem äußeren Div? In dem Beispiel, das das innere verbirgt. Es wird auch nicht in seinem Layout verschoben, da Sie weder oben noch links angeben.


9

Ein absolut positioniertes Element wird tatsächlich in Bezug auf ein relativeübergeordnetes Element oder das nächste gefundene relative übergeordnete Element positioniert . Das Element mit overflow: hiddensollte sich also zwischen relativeund absolutepositionierten Elementen befinden:

<div class="relative-parent">
  <div class="hiding-parent">
    <div class="child"></div>
  </div>
</div>

.relative-parent {
  position:relative;
}
.hiding-parent {
  overflow:hidden;
}
.child {
  position:absolute; 
}

-3

Du machst einfach so div:

<div style="width:100px; height: 100px; border:1px solid; overflow:hidden; ">
    <br/>
    <div style="position:inherit; width: 200px; height:200px; background:yellow;">
        <br/>
        <div style="position:absolute; width: 500px; height:50px; background:Pink; z-index: 99;">
            <br/>
        </div>
    </div>
</div>

Ich hoffe dieser Code wird dir helfen :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.