Here’s how you make a full-browser-width container when we’re inside a max-width/limited wrapper.

HTML

<!-- Parent Container -->
<div class="site-main">
	<!-- Content Wrapper -->
	<div class="wrapper">
		<!-- Content we want to be full width -->
		<div class="full-width">
			<h1>Hello World!</h1>
		</div>
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla pellentesque egestas tortor in semper. Nunc fermentum faucibus dictum. Nulla sollicitudin suscipit justo a placerat.</p>
	</div>
</div>

Full width parent container

In this example my parent container is set at a max-width of 100% with a nested content wrapper.

/* Base Styles */

.site-main{
    max-width: 100%;
}

.wrapper{
    max-width: 1350px;
    width: 100%;
    margin: 0 auto;
}

/* Full width - break out of parent container */

.alignfull{
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

Constrained parent container

In this example my parent container (.site-main) is set at a max-width of 1800px with a nested content wrapper (.wrapper).

You can calculate the negative margin for .alignfull like this parent – wrapper:

  • 1800px (parent) – 1350px (wrapper) = 450px

CSS

/* Base Styles */

.site-main{
    max-width: 1800px;
    margin: 0 auto;
}

.wrapper{
    max-width: 1350px;
    width: 100%;
    margin: 0 auto;
}

/* Full width - break out of parent container */

.alignfull{
    /* negative margin is calculated like this: parent - wrapper */
    /* 1800px - 1350px = 450px */
    margin-left: calc(-450px / 2);
    margin-right: calc(-450px / 2);
}

/* Breakpoint for parent container max-width */
@media only screen and (max-width: 1800px) {
    .alignfull{
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
    }
}