How to Make Responsive Coming Soon Page With Countdown with HTML , CSS and JS
Hi Everyone
I will represent how to make Responsive Coming Soon Page With Countdown


Code HTML

Code CSS
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
color: #fff;
background: #333;
overflow: hidden;
}
.landing {
position: relative;
background-image: url('../img/01.png');
background-size: cover;
background-position: center;
height: 100vh;
}
.landing-inner {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.7);
text-align: center;
padding-top: 50px;
}
.landing h1 {
font-size: 50px;
}
.landing p {
font-size: 20px;
}
.countdown {
font-size: 50px;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
}
.countdown div {
padding: 20px;
border: 1px #fff solid;
border-radius: 10px;
background: #000;
opacity: 0.7;
margin: 5px;
}
.countdown div:first-child {
background: #17a2b8;
}
.countdown span {
display: block;
font-size: 25px;
}
@media (max-width: 650px) {
.landing img {
width: 70%;
}
.landing h1 {
font-size: 40px;
}
.countdown {
font-size: 30px;
flex-direction: column;
}
.countdown div {
display: none;
}
.countdown div:first-child {
display: block;
width: 80%;
padding: 10px;
}
}
@media (max-height: 600px) {
img {
width: 20%;
}
p {
display: none;
}
}
@media (max-height: 400px) {
img {
padding-bottom: 30px;
}
h1 {
display: none;
}
}
Code JS
const countdown = document.querySelector('.countdown');
// Set Launch Date (ms)
const launchDate = new Date('Jan 1, 2019 13:00:00').getTime();
// Update every second
const intvl = setInterval(() => {
// Get todays date and time (ms)
const now = new Date().getTime();
// Distance from now and the launch date (ms)
const distance = launchDate - now;
// Time calculation
const days = Math.floor(distance / (1000 * 60 * 60 * 24));
const hours = Math.floor(
(distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)
);
const mins = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Display result
countdown.innerHTML = `
<div>${days}<span>Days</span></div>
<div>${hours}<span>Hours</span></div>
<div>${mins}<span>Minutes</span></div>
<div>${seconds}<span>Seconds</span></div>
`;
// If launch date is reached
if (distance < 0) {
// Stop countdown
clearInterval(intvl);
// Style and output text
countdown.style.color = '#17a2b8';
countdown.innerHTML = 'Launched!';
}
}, 1000);