HTML Background Image/Video With Text Overlay
How to create a full-width header image with text overlay using HTML and CSS.
Type: Background Image| Video| Video Iframe
Free Stock Videos by Videezy.com
<div class="bg-img bg-img-style-1">
<div class="bg-img-overlay bg-img-align-center">
<div class="bg-img-content">
<h1 class="bg-img-title">Title</h1>
<h2 class="bg-img-subtitle">Subtitle</h2>
<p class="bg-img-description">Description</p>
<a class="bg-img-btn" href="#">Button</a>
</div>
</div>
</div>
<div class="bg-img bg-img-style-1">
<video preload autoplay muted playsinline loop>
<source src="https://static.videezy.com/system/resources/previews/000/036/644/original/Fancy-1.mp4" type="video/mp4">
</video>
<div class="bg-img-overlay bg-img-align-center">
<div class="bg-img-content">
<h1 class="bg-img-title">Title</h1>
<h2 class="bg-img-subtitle">Subtitle</h2>
<p class="bg-img-description">Description</p>
<a class="bg-img-btn" href="#">Button</a>
</div>
</div>
</div>
<div class="bg-img bg-img-style-1">
<div class="bg-img-iframe-bg">
<div class="bg-img-iframe-container">
<iframe title="myvideo" src="https://www.youtube.com/embed/BHACKCNDMW8?controls=0&showinfo=0&rel=0&autoplay=1&loop=1&mute=1;start=10" frameborder="0"></iframe>
</div>
</div>
<div class="bg-img-overlay bg-img-align-center">
<div class="bg-img-content">
<h1 class="bg-img-title">Title</h1>
<h2 class="bg-img-subtitle">Subtitle</h2>
<p class="bg-img-description">Description</p>
<a class="bg-img-btn" href="#">Button</a>
</div>
</div>
</div>
/* Background Image */
.bg-img {
margin: 0;
padding: 0;
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-image: url("https://g2s.io/imgs/default/background.jpg");
}
/* Overlay Color */
.bg-img-overlay {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
display: table;
overflow: hidden;
position: absolute;
background-color: rgba(0, 0, 0, 0.4);
}
.bg-img-content {
padding: 0 64px;
display: table-cell;
vertical-align: middle;
}
.bg-img-align-left,
.bg-img-align-left .bg-img-description {
text-align: left;
}
.bg-img-align-right,
.bg-img-align-right .bg-img-description {
text-align: right;
}
.bg-img-align-center,
.bg-img-align-center .bg-img-description {
text-align: center;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
color: white;
padding: 0;
font-size: 40px;
}
/* Remove the top margin from the first child */
.bg-img .bg-img-overlay .bg-img-content :first-child {
margin-top: 0;
}
/* Remove the bottom margin from the last child */
.bg-img .bg-img-overlay .bg-img-content :last-child {
margin-bottom: 0;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
color: white;
font-size: 30px;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
color: white;
font-size: 20px;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
color: white;
font-size: 60px;
text-transform: uppercase;
margin-bottom: 10px;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
color: white;
font-size: 30px;
margin-top: 0;
margin-bottom: 16px;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
color: white;
font-size: 20px;
}
/* Button */
.bg-img .bg-img-btn {
color: white;
font-size: 16px;
margin-top: 16px;
padding: 16px 32px;
display: inline-block;
border: 1px solid white;
border-radius: 10px;
cursor: pointer;
text-transform: uppercase;
transition: 0.5s;
text-decoration: none;
}
/* Button Hover */
.bg-img .bg-img-btn:hover {
background-color: #3070C0;
}
/* Change styles on mobile */
@media screen and (max-width:700px) {
/* Padding */
.bg-img .bg-img-overlay .bg-img-content {
padding: 0 16px;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
font-size: 1.4em;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
font-size: 1em;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
font-size: 1.7em;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
font-size: 1em;
}
}
/* Video <video> */
.bg-img video {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
}
/* Video <iframe> */
.bg-img .bg-img-iframe-bg {
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100vw;
position: absolute;
}
.bg-img .bg-img-iframe-container,
.bg-img .bg-img-iframe-bg iframe {
top: 0;
left: 0;
width: 100%;
height: 100%;
position: absolute;
}
.bg-img .bg-img-iframe-container {
height: 300%;
top: -100%;
}
@media screen and (max-width:1060px) {
.bg-img .bg-img-iframe-container {
width: 300%;
left: -100%;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<style>
/* Background Image */
.bg-img {
margin: 0;
padding: 0;
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-image: url("https://g2s.io/imgs/default/background.jpg");
}
/* Overlay Color */
.bg-img-overlay {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
display: table;
overflow: hidden;
position: absolute;
background-color: rgba(0, 0, 0, 0.4);
}
.bg-img-content {
padding: 0 64px;
display: table-cell;
vertical-align: middle;
}
.bg-img-align-left,
.bg-img-align-left .bg-img-description {
text-align: left;
}
.bg-img-align-right,
.bg-img-align-right .bg-img-description {
text-align: right;
}
.bg-img-align-center,
.bg-img-align-center .bg-img-description {
text-align: center;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
color: white;
padding: 0;
font-size: 40px;
}
/* Remove the top margin from the first child */
.bg-img .bg-img-overlay .bg-img-content :first-child {
margin-top: 0;
}
/* Remove the bottom margin from the last child */
.bg-img .bg-img-overlay .bg-img-content :last-child {
margin-bottom: 0;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
color: white;
font-size: 30px;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
color: white;
font-size: 20px;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
color: white;
font-size: 60px;
text-transform: uppercase;
margin-bottom: 10px;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
color: white;
font-size: 30px;
margin-top: 0;
margin-bottom: 16px;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
color: white;
font-size: 20px;
}
/* Button */
.bg-img .bg-img-btn {
color: white;
font-size: 16px;
margin-top: 16px;
padding: 16px 32px;
display: inline-block;
border: 1px solid white;
border-radius: 10px;
cursor: pointer;
text-transform: uppercase;
transition: 0.5s;
text-decoration: none;
}
/* Button Hover */
.bg-img .bg-img-btn:hover {
background-color: #3070C0;
}
/* Change styles on mobile */
@media screen and (max-width:700px) {
/* Padding */
.bg-img .bg-img-overlay .bg-img-content {
padding: 0 16px;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
font-size: 1.4em;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
font-size: 1em;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
font-size: 1.7em;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
font-size: 1em;
}
}
</style>
<snippet-template img-src="https://g2s.io/imgs/default/background.jpg" content="innerHtml" style="1" align="center"
height="500px" overlay="rgba(0, 0, 0, 0.4)" bg-position="center" bg-size="cover" bg-repeat="no-repeat">
<h1 class="bg-img-title">Title</h1>
<h2 class="bg-img-subtitle">Subtitle</h2>
<p class="bg-img-description">Description</p>
<a class="bg-img-btn" href="#">Button</a>
</snippet-template>
<div class="bg-img bg-img-style-{{style}}"
style="height: {{height}}; background-position: {{bg-position}}; background-size: {{bg-size}}; background-image: url({{img-src}}); background-repeat: {{bg-repeat}};">
<div class="bg-img-overlay bg-img-align-{{align}}" style="background-color: {{overlay}};">
<div class="bg-img-content">
{{content}}
</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<style>
/* Background Image */
.bg-img {
margin: 0;
padding: 0;
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-image: url("https://g2s.io/imgs/default/background.jpg");
}
/* Overlay Color */
.bg-img-overlay {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
display: table;
overflow: hidden;
position: absolute;
background-color: rgba(0, 0, 0, 0.4);
}
.bg-img-content {
padding: 0 64px;
display: table-cell;
vertical-align: middle;
}
.bg-img-align-left,
.bg-img-align-left .bg-img-description {
text-align: left;
}
.bg-img-align-right,
.bg-img-align-right .bg-img-description {
text-align: right;
}
.bg-img-align-center,
.bg-img-align-center .bg-img-description {
text-align: center;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
color: white;
padding: 0;
font-size: 40px;
}
/* Remove the top margin from the first child */
.bg-img .bg-img-overlay .bg-img-content :first-child {
margin-top: 0;
}
/* Remove the bottom margin from the last child */
.bg-img .bg-img-overlay .bg-img-content :last-child {
margin-bottom: 0;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
color: white;
font-size: 30px;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
color: white;
font-size: 20px;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
color: white;
font-size: 60px;
text-transform: uppercase;
margin-bottom: 10px;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
color: white;
font-size: 30px;
margin-top: 0;
margin-bottom: 16px;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
color: white;
font-size: 20px;
}
/* Button */
.bg-img .bg-img-btn {
color: white;
font-size: 16px;
margin-top: 16px;
padding: 16px 32px;
display: inline-block;
border: 1px solid white;
border-radius: 10px;
cursor: pointer;
text-transform: uppercase;
transition: 0.5s;
text-decoration: none;
}
/* Button Hover */
.bg-img .bg-img-btn:hover {
background-color: #3070C0;
}
/* Change styles on mobile */
@media screen and (max-width:700px) {
/* Padding */
.bg-img .bg-img-overlay .bg-img-content {
padding: 0 16px;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
font-size: 1.4em;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
font-size: 1em;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
font-size: 1.7em;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
font-size: 1em;
}
}
/* Video <video> */
.bg-img video {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
}
/* Video <iframe> */
.bg-img .bg-img-iframe-bg {
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100vw;
position: absolute;
}
.bg-img .bg-img-iframe-container,
.bg-img .bg-img-iframe-bg iframe {
top: 0;
left: 0;
width: 100%;
height: 100%;
position: absolute;
}
.bg-img .bg-img-iframe-container {
height: 300%;
top: -100%;
}
@media screen and (max-width:1060px) {
.bg-img .bg-img-iframe-container {
width: 300%;
left: -100%;
}
}
</style>
<snippet-template vid-src="https://static.videezy.com/system/resources/previews/000/036/644/original/Fancy-1.mp4"
img-src="https://g2s.io/imgs/default/background.jpg" content="innerHtml" style="1" align="center" height="500px"
overlay="rgba(0, 0, 0, 0.4)" bg-position="center" bg-size="cover" bg-repeat="no-repeat">
<h1 class="bg-img-title">Title</h1>
<h2 class="bg-img-subtitle">Subtitle</h2>
<p class="bg-img-description">Description</p>
<a class="bg-img-btn" href="#">Button</a>
</snippet-template>
<div class="bg-img bg-img-style-{{style}}"
style="height: {{height}}; background-position: {{bg-position}}; background-size: {{bg-size}}; background-image: url({{img-src}}); background-repeat: {{bg-repeat}};">
<video preload autoplay muted playsinline loop>
<source src="{{vid-src}}" type="video/mp4">
</video>
<div class="bg-img-overlay bg-img-align-{{align}}" style="background-color: {{overlay}};">
<div class="bg-img-content">
{{content}}
</div>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<style>
/* Background Image */
.bg-img {
margin: 0;
padding: 0;
width: 100%;
height: 500px;
overflow: hidden;
position: relative;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
background-image: url("https://g2s.io/imgs/default/background.jpg");
}
/* Overlay Color */
.bg-img-overlay {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
display: table;
overflow: hidden;
position: absolute;
background-color: rgba(0, 0, 0, 0.4);
}
.bg-img-content {
padding: 0 64px;
display: table-cell;
vertical-align: middle;
}
.bg-img-align-left,
.bg-img-align-left .bg-img-description {
text-align: left;
}
.bg-img-align-right,
.bg-img-align-right .bg-img-description {
text-align: right;
}
.bg-img-align-center,
.bg-img-align-center .bg-img-description {
text-align: center;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
color: white;
padding: 0;
font-size: 40px;
}
/* Remove the top margin from the first child */
.bg-img .bg-img-overlay .bg-img-content :first-child {
margin-top: 0;
}
/* Remove the bottom margin from the last child */
.bg-img .bg-img-overlay .bg-img-content :last-child {
margin-bottom: 0;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
color: white;
font-size: 30px;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
color: white;
font-size: 20px;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
color: white;
font-size: 60px;
text-transform: uppercase;
margin-bottom: 10px;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
color: white;
font-size: 30px;
margin-top: 0;
margin-bottom: 16px;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
color: white;
font-size: 20px;
}
/* Button */
.bg-img .bg-img-btn {
color: white;
font-size: 16px;
margin-top: 16px;
padding: 16px 32px;
display: inline-block;
border: 1px solid white;
border-radius: 10px;
cursor: pointer;
text-transform: uppercase;
transition: 0.5s;
text-decoration: none;
}
/* Button Hover */
.bg-img .bg-img-btn:hover {
background-color: #3070C0;
}
/* Change styles on mobile */
@media screen and (max-width:700px) {
/* Padding */
.bg-img .bg-img-overlay .bg-img-content {
padding: 0 16px;
}
/* Title - Style-1 */
.bg-img-style-1 .bg-img-title {
font-size: 1.4em;
}
/* Subtitle - Style-1 */
.bg-img-style-1 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-1 */
.bg-img-style-1 .bg-img-description {
font-size: 1em;
}
/* Title - Style-2 */
.bg-img-style-2 .bg-img-title {
font-size: 1.7em;
}
/* Subtitle - Style-2 */
.bg-img-style-2 .bg-img-subtitle {
font-size: 1.2em;
}
/* Description - Style-2 */
.bg-img-style-2 .bg-img-description {
font-size: 1em;
}
}
/* Video <video> */
.bg-img video {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
object-fit: cover;
position: absolute;
}
/* Video <iframe> */
.bg-img .bg-img-iframe-bg {
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100vw;
position: absolute;
}
.bg-img .bg-img-iframe-container,
.bg-img .bg-img-iframe-bg iframe {
top: 0;
left: 0;
width: 100%;
height: 100%;
position: absolute;
}
.bg-img .bg-img-iframe-container {
height: 300%;
top: -100%;
}
@media screen and (max-width:1060px) {
.bg-img .bg-img-iframe-container {
width: 300%;
left: -100%;
}
}
</style>
<snippet-template iframe-src="https://www.youtube.com/embed/BHACKCNDMW8?controls=0&showinfo=0&rel=0&autoplay=1&loop=1&mute=1;start=10"
img-src="https://g2s.io/imgs/default/background.jpg" content="innerHtml" style="1" align="center" height="500px"
overlay="rgba(0, 0, 0, 0.4)" bg-position="center" bg-size="cover" bg-repeat="no-repeat">
<h1 class="bg-img-title">Title</h1>
<h2 class="bg-img-subtitle">Subtitle</h2>
<p class="bg-img-description">Description</p>
<a class="bg-img-btn" href="#">Button</a>
</snippet-template>
<div class="bg-img bg-img-style-{{style}}"
style="height: {{height}}; background-position: {{bg-position}}; background-size: {{bg-size}}; background-image: url({{img-src}}); background-repeat: {{bg-repeat}};">
<div class="bg-img-iframe-bg">
<div class="bg-img-iframe-container">
<iframe title="myvideo" src="{{iframe-src}}" frameborder="0"></iframe>
</div>
</div>
<div class="bg-img-overlay bg-img-align-{{align}}" style="background-color: {{overlay}};">
<div class="bg-img-content">
{{content}}
</div>
</div>
</div>
</body>
</html>
