Basierend auf Ihrem ursprünglichen Vorschlag (Festlegen negativer Ränder) habe ich versucht, eine ähnliche Methode zu entwickeln, bei der Prozenteinheiten für die dynamische Browserbreite verwendet werden:
HTML
<div class="grandparent">
<div class="parent">
<div class="child">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore neque repellat ipsum natus magni soluta explicabo architecto, molestias laboriosam rerum. Tempore eos labore temporibus alias necessitatibus illum enim, est harum perspiciatis, sit, totam earum corrupti placeat architecto aut minus dignissimos mollitia asperiores sint ea. Libero hic laudantium, ipsam nostrum earum distinctio. Cum expedita, ratione, accusamus dicta similique distinctio est dolore assumenda soluta dolorem quisquam ex possimus aliquid provident quo? Enim tempora quo cupiditate eveniet aperiam.</p>
</div>
</div>
</div>
CSS:
.child-div{
margin: 0 -100%;
padding: 0 -100%;
}
.parent {
width: 60%;
background-color: red;
margin: 0 auto;
padding: 50px;
position:relative;
}
.grandparent {
overflow-x:hidden;
background-color: blue;
width: 100%;
position:relative;
}
Durch die negativen Ränder fließt der Inhalt aus dem übergeordneten DIV. Deshalb habe ich das so eingestellt padding: 0 100%;
, dass der Inhalt wieder an die ursprünglichen Grenzen des Chlid DIV verschoben wird.
Durch die negativen Ränder wird auch die Gesamtbreite des .child-div aus dem Ansichtsfenster des Browsers erweitert, was zu einem horizontalen Bildlauf führt. Daher müssen wir die Extrudierbreite abschneiden, indem wir ein overflow-x: hidden
auf ein Großeltern-DIV anwenden (das das Elternteil des Eltern-Div ist):
Hier ist die JSfiddle
Ich habe es mit Nils Kaspersson versucht left: calc(-50vw + 50%)
. In Chrome & FF funktionierte es einwandfrei (ich bin mir über den IE noch nicht sicher), bis ich herausfand, dass Safari-Browser es nicht richtig machen. Ich hoffe, sie haben das behoben, sobald mir diese einfache Methode wirklich gefällt.
Dies kann auch Ihr Problem beheben, bei dem sich das übergeordnete DIV-Element befinden muss position:relative
Die 2 Nachteile dieser Problemumgehungsmethode sind:
- Benötigen Sie zusätzliches Markup (dh ein Großelternelement (genau wie die gute alte vertikale Ausrichtungsmethode für Tabellen, nicht wahr ...)
- Der linke und rechte Rand des untergeordneten DIV werden niemals angezeigt, nur weil sie sich außerhalb des Ansichtsfensters des Browsers befinden.
Bitte lassen Sie mich wissen, wenn Sie Probleme mit dieser Methode haben;). Ich hoffe es hilft.
position: relative
? Wofür brauchst duposition: relative
? Ich denke, was ich frage ist: Was versuchst du zu tun?