Как сделать чтобы модальное окно закрывалось при нажатии на область за его пределами?

Закрытие модального окна при клике за его пределами?

var modal = document.getElementById('modal');
var open = document.getElementsByClassName("open")
var close = document.getElementsByClassName("close");

for (var i = 0; i < open.length; i++) {
  open[i].onclick = function() {
    var id = this.getAttribute('data-modal');
    var modal = document.getElementById(id);
    modal.style.display = 'block';
  }
}

for (var i = 0; i < close.length; i++) {
  close[i].onclick = function() {
    var id = this.getAttribute('data-modal');
    var modal = document.getElementById(id);
    modal.style.display = 'none';
  }
}
font.divclass{
     position: relative;
     top: 30px;
 }
 p.divclass{
     position:relative;
     top: 30px;
 }
      .img-card{
      cursor: pointer;
      }
      .img-card img{
      object-fit: cover;
      }
      .content{
      position: absolute;
      top: 0;
      left: 0;
      justify-content: center;
      align-items: center;
      text-align:center;
      padding-top: 25%;
      }
      

  .modal{
    position: fixed;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.9);
}
.open{
       margin-bottom: 100px;
      background-color: rgba(165, 165, 165, 0.4);
  text-decoration: none;
  font-size: 22px;
  font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
  cursor: pointer;
  border: 1px solid white;
}


.modal-content{
    background-color: #fefefe;
    margin: 15% auto;
    padding: 20px;
    width: 98%;

}
.close{
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}
button.open {
  /* display: block; */
  position: relative;
  top: 240px;
  left: 32px;
  bottom: 15px;
   color: white;
   
   }
button.open:hover {
 border: 1px solid #ED2028;
 color: white;
 background-color: #ED2028;
}
span.close {
  font-size: 30px;
   cursor: pointer;
 
   }
<div class="contanier">
 <div class = "row justify-content-md-center">
                <div class="col-md-4" style="background: radial-gradient(rgba(0,0,0,0.1),rgba(0,0,0,0.5)),url('/static/Airpiort.jpg');height:425px;">
                    <font size="6" face="lucida console" class="divclass" style="color:#ffffff; font-weight:800; padding-left:5%">С заботой </font>
                                  <p class="divclass" style="color: #E4E4E4;padding-left:5%; font-size: 28px; font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;">о ваших клиентах</p>
                                      <button class="open" data-modal="modal1">Подробнее</button>
                                          <div id="modal1" class="modal">
                                                <div class="modal-content" style="background: rgba(237, 237, 237, 0.1);">
                                                      <span class="close" data-modal="modal1">&times;</span>
                                                          <div class = "row">
                                                            <div class="col-md-12" style="text-align:center;">
                                                              <font size="5" face="arial black"  style="color:#ffffff;">BRANDNETWORK.</font>
                                                              <font size="5" face="arial black"  style="color:#ffffff; font-variant: small-caps; font-weight:bold">customers</font>
                                                            </div>
                                                          </div>  


Ответы (1 шт):

Автор решения: Сергей В.

Я даже две модалки сделал тебе... Азбука:

var modal_box = document.querySelectorAll('.modal');
var open = document.querySelectorAll(".open");
var close = document.querySelectorAll(".close");

for (var i = 0; i < open.length; i++) {
  open[i].onclick = function() {
    var id = this.getAttribute('data-modal');
    var modal = document.getElementById(id);
    modal.style.display = 'block';
  }
}

for (var i = 0; i < close.length; i++) {
  close[i].onclick = function() {
    var id = this.getAttribute('data-modal');
    var modal = document.getElementById(id);
    modal.style.display = 'none';
  }
}
for (var i = 0; i < modal_box.length; i++) {
  modal_box[i].onclick = function() {
    this.style.display = 'none';
  }
}
-font.divclass{
     position: relative;
     top: 30px;
 }
 p.divclass{
     position:relative;
     top: 30px;
 }
      .img-card{
      cursor: pointer;
      }
      .img-card img{
      object-fit: cover;
      }
      .content{
      top: 0;
      left: 0;
      justify-content: center;
      align-items: center;
      text-align:center;
      padding-top: 25%;
      }
      

  .modal{
    position: fixed;display:none;
    z-index: 1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.9);
}
.open{
       margin-bottom: 100px;
      background-color: rgba(165, 165, 165, 0.4);
  text-decoration: none;
  font-size: 22px;
  font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;
  cursor: pointer;
  border: 1px solid white;
}


.modal-content{
    background-color: #fefefe;
    margin: 15% auto;
    padding: 20px;
    width: 98%;

}
.close{
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}
button.open {
  /* display: block; */
  position: relative;
  top: 240px;
  left: 32px;
  bottom: 15px;
   color: white;
   
   }
button.open:hover {
 border: 1px solid #ED2028;
 color: white;
 background-color: #ED2028;
}
span.close {
  font-size: 30px;
   cursor: pointer;
 
   }
<div class="content">
    <h1>Vanilla JS modal</h1>
    <div class = "row justify-content-md-center">
        <div class="col-md-4" style="background: radial-gradient(rgba(0,0,0,0.1),rgba(0,0,0,0.5)),url('/static/Airpiort.jpg');height:425px;">
            <font size="6" face="lucida console" class="divclass" style="color:#ffffff; font-weight:800; padding-left:5%">С заботой </font>
            <p class="divclass" style="color: #E4E4E4;padding-left:5%; font-size: 28px; font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif;">о ваших клиентах</p>
            <button class="open" data-modal="modal1">Подробнее</button> <button class="open" data-modal="modal2">Подробнее2</button>
            <div id="modal1" class="modal">
                <div class="modal-content" style="background: rgba(237, 237, 237, 0.1);">
                    <span class="close" data-modal="modal1">&times;</span>
                    <div class = "row">
                        <div class="col-md-12" style="text-align:center;">
                            <font size="5" face="arial black"  style="color:#ffffff;">BRANDNETWORK.</font>
                            <font size="5" face="arial black"  style="color:#ffffff; font-variant: small-caps; font-weight:bold">customers</font>
                        </div>
                    </div>
                </div>
            </div>
            <div id="modal2" class="modal">
                <div class="modal-content" style="background: rgba(237, 237, 237, 0.1);">
                    <span class="close" data-modal="modal2">&times;</span>
                    <div class = "row">
                        <div class="col-md-12" style="text-align:center;">
                            <font size="5" face="arial black"  style="color:#ffffff;">BRANDNETWORK-2.</font>
                            <font size="5" face="arial black"  style="color:#ffffff; font-variant: small-caps; font-weight:bold">customers-2</font>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

→ Ссылка