Miten luoda: Ylivalikko, jossa on pudotusvalikko
- Edellinen sivu Sivupaneelin pudotusvalikko
- Seuraava sivu Alasivunavigointivalikko
Opi, miten luoda vastauskykyinen ylivalikko, jossa on pudotusvalikko.
Ylivalikko, jossa on pudotusvalikko
Luo vastauskykyinen ylivalikko, jossa on pudotusvalikko
Vaihe 1 - Lisää HTML:
<div class="topnav" id="myTopnav"> <a href="#home" class="active">Home</a> <a href="#news">News</a> <a href="#contact">Contact</a> <div class="dropdown"> <button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </div> <a href="#about">About</a> <a href="javascript:void(0);" class="icon" onclick="myFunction()">☰</a> </div>
Vaihe 2 - Lisää CSS:
/* Lisää ylätunnistevalikolle tumma taustaväri */ .topnav { background-color: #333; overflow: hidden; } /* Määritä ylätunnistevalikon linkkien tyylit */ .topnav a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; font-size: 17px; } /* Lisää aktiivinen luokka korostaaksesi nykyistä sivua */ .active { background-color: #04AA6D; color: valkoinen; } /* Piilota pienissä näytöissä avata ja sulkea ylätunnistevalikon linkit */ .topnav .icon { display: none; } /* Pudotusvalikon konttitori - käytetään pudotusvalikon sisällön sijoittamiseen */ .dropdown { float: left; overflow: hidden; } /* Määritä pudotusvalikon painikkeen tyylit, jotta ne sopivat ylätunnistevalikkoon */ .dropdown .dropbtn { font-size: 17px; border: none; outline: none; color: valkoinen; padding: 14px 16px; background-color: inherit; font-family: inherit; margin: 0; } /* Määritä alapuoliseen valikon sisällön tyylit (oletusarvoisesti piilotettu) */ .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* Määritä alapuoliseen valikkoon sisältyvien linkkien tyylit */ .dropdown-content a { float: none; color: musta; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } /* Kun hiiren osoitin on päällä, lisää ylätunnistevalikon linkkien ja pudotusvalikon painikkeen tumma tausta */ .topnav a:hover, .dropdown:hover .dropbtn { background-color: #555; color: valkoinen; } /* Kun hiiren osoitin on päällä, lisää alapuoliseen valikkoynään tumma tausta */ .dropdown-content a:hover { background-color: #ddd; color: musta; } /* Kun hiiri siirtyy pudotusvalikon painikkeelle, näytetään pudotusvalikko */ .dropdown:hover .dropdown-content { display: block; } /* Kun näytön leveys on alle 600 pikseliä, piilotetaan kaikki linkit paitsi ensimmäinen ("Home"). Näytettäväksi tulisi avata ja sulkea ylätunnistevalikon (icon) linkki */ @media screen and (max-width: 600px) { .topnav a:not(:first-child), .dropdown .dropbtn { display: none; } .topnav a.icon { float: right; display: block; } } /* Kun käyttäjä napsauttaa kuvaketta, JavaScript lisää "responsive"-luokan ylätunnistevalikkoon. Tämä luokka tekee ylätunnistevalikosta paremman näyttämisen pienillä näytöillä (näyttää linkit pystysuoraan eikä horisontaalisesti) */ @media screen and (max-width: 600px) { .topnav.responsive {position: relative;} .topnav.responsive a.icon { position: absolute; right: 0; top: 0; } .topnav.responsive a { float: none; display: block; text-align: left; } .topnav.responsive .dropdown {float: none;} .topnav.responsive .dropdown-content {position: relative;} .topnav.responsive .dropdown .dropbtn { display: block; width: 100%; text-align: left; } }
Vaihe 3 - Lisää JavaScript:
/* Kun käyttäjä napsauttaa kuvaketta, vaihdetaan "responsive"-luokan lisääminen ja poistaminen ylätunnistevalikosta */ function myFunction() { var x = document.getElementById("myTopnav"); if (x.className === "topnav") { x.className += " responsive"; } else { x.className = "topnav"; } }
Liittyvät sivut
Oppitunti:CSS pudotusvalikko
Oppitunti:Kuinka luoda klikattava pudotusvalikko
Oppitunti:CSS navigointirivi
- Edellinen sivu Sivupaneelin pudotusvalikko
- Seuraava sivu Alasivunavigointivalikko