Hi there I am having problems with a modal I have implemented on my site where the modal is open upon loading the site, I wish to have it only open when the correct button is pressed. Additionally it is moving down all other divs below it even though I have the position as absolute and its parent div as relative.
Please see code below
<header class="col-1" id="myBtn" style="margin-top: 10px; border: .25rem solid #E86E5E; font-size: .9rem; z-index: 0;">Contact</header>
<!-- The Modal -->
<div id="contact" class="modal">
<!-- Modal content -->
<div class="contact-content">
<span class="close">×</span>
<p class="modal-title">Get in touch.</p>
<form action="/action_page.php" style="margin-left: 20px;">
<label for="fname">Full Name</label><br>
<input type="text" id="fname" name="fname" value=""><br>
<label for="email">Email</label><br>
<input type="text" id="email" name="email" value=""><br>
<label for="email">Company</label><br>
<input type="text" id="company" name="company" value=""><br>
<label for="company">Company</label><br>
<input type="text" id="subject" name="subject" value=""><br><br>
<input type="submit" value="Submit">
</form>
</div>
</div>
<script>
// Get the modal
var modal = document.getElementById("contact");
// Get the button that opens the modal
var btn = document.getElementById("myBtn");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
.contact {
display: none; /* Hidden by default */
position: absolute; /* Stay in place */
z-index: 100; /* Sit on top */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
.contact-content {
background-color: #222222;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 80%;
color: #FFFFFF;
font-weight: bold;
}
/* The Close Button */
.close {
color: #aaaaaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
.modal-title {
font-size: 5vw;
}
Any advice you can offer would be greatly appreciated.
Your CSS is hiding a non-existent element by class while the element you're wanting to style is using an id.
You need to change the selector in CSS from .contact
to #contact
, or you could select .modal
since the element has a class titled “modal”.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.