Berdasarkan saran asli saran Anda (pengaturan margin negatif), saya telah mencoba dan menghasilkan metode serupa menggunakan satuan persentase untuk lebar browser dinamis:
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;
}
Margin negatif akan membuat konten mengalir keluar dari DIV Induk. Oleh karena itu saya mengaturpadding: 0 100%;
untuk mendorong konten kembali ke batas asli DIV Chlid.
Margin negatif juga akan membuat lebar total .child-div meluas dari viewport browser, menghasilkan gulir horizontal. Oleh karena itu kita perlu memotong lebar ekstrusi dengan menerapkanoverflow-x: hidden
ke DIV kakek-nenek (yang merupakan induk dari Div Induk):
Ini JSfiddle
Saya mencoba Nils Kaspersson left: calc(-50vw + 50%)
; itu bekerja dengan sangat baik di Chrome & FF (belum yakin tentang IE) sampai saya tahu browser Safari tidak melakukannya dengan benar. Semoga mereka memperbaikinya segera setelah saya benar-benar menyukai metode sederhana ini.
Ini juga dapat menyelesaikan masalah Anda di mana elemen DIV Induk harus position:relative
2 kelemahan dari metode penyelesaian masalah ini adalah:
- Membutuhkan markup tambahan (yaitu elemen kakek-nenek (seperti metode penyelarasan tabel vertikal yang baik bukan ...)
- Perbatasan kiri dan kanan DIV Anak tidak akan pernah ditampilkan, hanya karena mereka berada di luar viewport browser.
Harap beri tahu saya jika ada masalah dengan metode ini;). Semoga ini bisa membantu.
position: relative
? Apa yang Anda butuhkanposition: relative
? Saya kira yang saya tanyakan adalah: apa yang Anda coba lakukan?