Come creare: Ricerca a schermo intero

Impara come creare una casella di ricerca a schermo intero utilizzando CSS e JavaScript.

Prova personalmente

Come creare una casella di ricerca a schermo intero

Primo passo - Aggiungi HTML:

<div id="myOverlay" class="overlay">
  <span class="closebtn" onclick="closeSearch()" title="Chiudi sovrapposizione">x</span>
  <div class="overlay-content">
    <form action="action_page.php">
      <input type="text" placeholder="Cerca.." name="search">
      <button type="submit"><i class="fa fa-search"></i></button>
    </form>
  </div>
</div>

Secondo passo - Aggiungi CSS:

/* Effetto sovrapposizione sfondo nero */
.overlay {
  altezza: 100%;
  larghezza: 100%;
  display: none;
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  background-color: rgb(0,0,0);
  background-color: rgba(0,0,0, 0.9); /* Nero, con un po' di prospettiva (o trasparenza) */
}
/* Contenuto */
.overlay-content {
  position: relative;
  top: 46%;
  width: 80%;
  text-align: center;
  margin-top: 30px;
  margin: auto;
}
/* Bottone di chiusura */
.overlay .closebtn {
  position: absolute;
  top: 20px;
  right: 45px;
  font-size: 60px;
  cursor: pointer;
  color: white;
}
.overlay .closebtn:hover {
  color: #ccc;
}
/* Imposta lo stile della casella di ricerca */
.overlay input[type=text] {
  padding: 15px;
  font-size: 17px;
  border: none;
  float: left;
  width: 80%;
  background: white;
}
.overlay input[type=text]:hover {
  background: #f1f1f1;
}
/* Imposta lo stile del pulsante di invio */
.overlay button {
  float: left;
  width: 20%;
  padding: 15px;
  background: #ddd;
  font-size: 17px;
  border: none;
  cursor: pointer;
}
.overlay button:hover {
  background: #bbb;
}

Passo 3 - Aggiungi JavaScript:

Usa JavaScript per aprire e chiudere l'effetto sovrapposto/intero a schermo:

// Apri la casella di ricerca a schermo intero
function openSearch() {
  document.getElementById("myOverlay").style.display = "block";
}
// Chiude la casella di ricerca a schermo intero
function closeSearch() {
  document.getElementById("myOverlay").style.display = "none";
}

Prova personalmente