Speed Course Responsive HTML and CSS
- Menu bouwen met Flex, nav en div elementen
- Hover buttons
- Spring naar een section
- Responsive view in de browser
- Viewport tag
- Background image met cover
- Schalen met % en vw
- Media Queries
- Menu layout
- Google fonts
- Frontend validatie van formuliervelden
Maak het nav
component een flex box. Geef de div
tags in de nav een flex grow
eigenschap, dit zorgt ervoor dat de buttons evenredig over de breedte verdeeld worden.
css
nav {
display:flex;
}
nav div {
flex-grow: 1;
}
Om er echt mooie knoppen van te maken voegen we nog meer eigenschappen toe aan de divs in de nav bar:
nav div {
text-align: center;
padding: 10px;
background-color: rgba(94, 112, 135, 0.728);
cursor: pointer;
transition: all 0.4s ease-in;
}
nav div:hover {
background-color: rgba(118, 149, 189, 0.728);
}
Bekijk main.js
om te zien hoe je de menu buttons clickable kan maken. Bij click scroll je naar een element met een bepaalde id.
De meta tag zorgt voor juiste schaling in de browser.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Zorg dat het main
element niet groter kan worden dan 1000px, maar wél kleiner.
main {
max-width: 1000px;
margin: 0 auto;
}
Zorg dat de afbeeling in een section altijd net zo breed is als de section, met %
:
section img {
width:100%;
}
Met media queries
kan je bepaalde CSS regels toepassen zodra het scherm een kleine afmeting heeft. In dit voorbeeld halen we de flex
eigenschap weer van de nav
af op kleine schermen:
@media screen and (max-width: 600px) {
nav {
display: block;
}
}
Met background-size cover
kan je een achtergrondafbeelding maken die altijd de beschikbare ruimte helemaal opvult, dit werkt goed voor header images.
Gebruik vw
units om te zorgen dat de div altijd net zo breed is als de browser.
<div id="header-image"></div>
css
#header-image {
width: 100vw;
height: 50vh;
background-image: url(../images/header.jpg);
background-size: cover;
background-position: center;
}
Zoek een font uit op google fonts, en kopieer de link tag naar index.html
<link href="https://fonts.googleapis.com/css?family=Oswald:400,700&display=swap" rel="stylesheet">
Nu kan je het font in CSS gebruiken
body {
font-family: 'Oswald', sans-serif;
}
Met required
en type
kan je formulierinvoer automatisch controleren voordat het naar de server gestuurd wordt.
<form action="/action_page.php">
<input type="text" name="name" required placeholder="Naam"><br>
<input type="email" name="email" required placeholder="Email"><br>
<input type="submit" value="Verzenden">
</form>
Met CSS kan je een stijl toepassen die alleen geldt zo lang het veld niet correct is ingevuld.
input[type=email]:invalid {
border:2px dashed red;
}