Full-width element in fixed-width container
by Brett
HTML
<div class="main">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
<div class="full-width">
<img src="http://placehold.it/2000x250">
<div id="next">
N
</div>
<div id="prev">
P
</div>
</div>
<p>At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At
accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.</p>
</div>
SCSS
*,
*:before,
*:after {
box-sizing: border-box;
}
.main {
width: 1020px;
min-height: 450px;
margin: 0 auto;
padding: 20px 5%;
background: #fff;
.full-width {
position: relative;
width: 100vw;
left: 50%;
right: 50%;
height: auto;
margin-left: -50vw;
margin-right: -50vw;
img {
display: block;
width: 100%;
height: auto;
margin: 0 auto;
}
#next {
position: absolute;
bottom: 0;
right: calc((100vw - 1020px) / 2);
width: 60px;
height: 60px;
background: red;
color: #fff;
line-height: 60px;
text-align: center;
}
#prev {
position: absolute;
bottom: 0;
right: calc((100vw - 1020px) / 2 + 60px);
width: 60px;
height: 60px;
background: purple;
color: #fff;
line-height: 60px;
text-align: center;
}
}
}