<main class="d-flex justify-content-center align-items-center py-4">
	<div class="container text-white">
		<section>
			<div class="row">
				<div class="col-6">
					<div>
						<h1>Lorem ipsum dolor sit amet.</h1>
						<p>Lorem ipsum dolor, sit amet consectetur adipisicing <br> elit. Voluptas corrupti ducimus maxime, rem quibusdam sit.</p>
						<a href="#">Read more</a>
					</div>
				</div>
				<div class="col-6">
					<div>
						<h1>Lorem ipsum dolor sit amet.</h1>
						<p>Lorem ipsum dolor, sit amet consectetur adipisicing <br> elit. Voluptas corrupti ducimus maxime, rem quibusdam sit.</p>
						<a href="#">Read more</a>
					</div>
				</div>
				<div class="col-6">
					<div>
						<h1>Lorem ipsum dolor sit amet.</h1>
						<p>Lorem ipsum dolor, sit amet consectetur adipisicing <br> elit. Voluptas corrupti ducimus maxime, rem quibusdam sit.</p>
						<a href="#">Read more</a>
					</div>
				</div>
				<div class="col-6">
					<div>
						<h1>Lorem ipsum dolor sit amet.</h1>
						<p>Lorem ipsum dolor, sit amet consectetur adipisicing <br> elit. Voluptas corrupti ducimus maxime, rem quibusdam sit.</p>
						<a href="#">Read more</a>
					</div>
				</div>
				<div class="col-6">
					<div>
						<h1>Lorem ipsum dolor sit amet.</h1>
						<p>Lorem ipsum dolor, sit amet consectetur adipisicing <br> elit. Voluptas corrupti ducimus maxime, rem quibusdam sit.</p>
						<a href="#">Read more</a>
					</div>
				</div>
				<div class="col-6">
					<div>
						<h1>Lorem ipsum dolor sit amet.</h1>
						<p>Lorem ipsum dolor, sit amet consectetur adipisicing <br> elit. Voluptas corrupti ducimus maxime, rem quibusdam sit.</p>
						<a href="#">Read more</a>
					</div>
				</div>
			</div>
		</section>
	</div>
</main>
* {
	margin: 0;
	padding: 0;
	outline: 0;
	box-sizing: border-box;
	font-family: 'Roboto', sans-serif;
}

main {
	width: 100%;
	background: url(https://images.pexels.com/photos/5797902/pexels-photo-5797902.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=750&w=1260) no-repeat bottom center / cover;
	
	overflow: hidden;  /* IMPORTANT */
}

main > .container {
	background: rgba(0,0,0,.5);
}

main > .container section .col-6 > div {
	padding: 10px;
	background: rgba(255,255,255,.1);
	margin: 15px 0;
	border-radius: 5px;
}
main > .container > section {
	padding: 20px 15px;
}

section h1 {
	font-size: 24px;
	font-weight: 700;
}

section p {
	font-size: 15px;
	line-height: 25px;
	font-weight: 500;
}

section a {
	text-decoration: none !important;
	display: block;
	padding: 8px 5px;
	text-align: center;
	border-radius: 3px;
	background: #fff;
	font-size: 14px;
	font-weight: 700;
	color: #232323 !important;
	
	position: relative;
	z-index: 1;
}

/* ========================= */
/* OUR CODE WILL START FROM HERE
/* ========================= */

main > .container,
main > .container > section {
	position: relative;
	z-index: 1;
}

/* These 2 are for left and right side of the container */
main > .container::before,
main > .container::after {
	position: absolute;
	content: '';
	background: rgba(0,0,0,.6);
	z-index: -1;
	
	/* here is the trick */
	width: 100vw;
	height: calc(100% + 20px);
	top: -10px;
}

/* lef side */
main > .container::before { right: calc(100% + 10px); } 

/* right side */
main > .container::after { left: calc(100% + 10px); }


/* these 2 are for top and bottom side of the container */
main > .container > section::before,
main > .container > section::after {
	position: absolute;
	content: '';
	width: 100vw;
	height: 100%;
	left: 50%;
	transform: translateX(-50%);
	background: rgba(0,0,0,.6);
	z-index: -1;
}
main > .container > section::before { 
	bottom: calc(100% + 10px); /* top side */
} 
main > .container > section::after { 
	top: calc(100% + 10px); /* bottom side */
}

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css
  2. https://fonts.googleapis.com/css?family=Roboto:400,500,900"rel="stylesheet

External JavaScript

This Pen doesn't use any external JavaScript resources.