Bättre kontroll över svåra layouter.
Design baserat på enhetens förmåga.
Bättre användarupplevelse.
flexbox
Bygger på två riktningar main axis och cross axis.
Main axis sätts med flex-direction.
Cross axis är alltid vinkelrät mot main axis.
↔
row
row-reverse
↕
columncolumn-reverse
I flexbox tar man hänsyn till skriftspråkets riktning och talar hellre om start och end istället för left och right.
Elementet som använder flexbox för layout
kallas för flex container.
Alla elementets (direkta) barn blir då flex items.
För att göra ett element till flex container skriver man:
.box {
display: flex;
}
Standardbeteende
Exempel:
.box {
display: flex;
}
Ett
Två
Tre med
extra text
flex-directionflex-wrapgapflex-basisflex-growflex-shrinkalign-itemsjustify-contentNär inte flexbox räcker...
Använd Grid Layout
A Complete Guide to Flexbox på CSS-Tricks
CSS Flexible Box Layout på MDN
CSS Grid Layout på MDN
Möjlighet att styra presentationen utifrån vad enheten som visar sidan klarar av.
@media print {
img {
display: none;
}
}
... eller ...
Det finns tre olika media types.
screen, print, speech
Det finns många olika media features.
Några exempel är width, height, aspect-ratio,
orientation, color, pointer och hover.
Exempel:
@media screen, print { ... }
@media (hover) { ... }
@media print and (min-resolution: 150dpi) { ... }
@media (min-width: 500px and orientation: portrait) { ... }
Särskild presentation vid utskrift.
Ladda bättre bilder på högupplösta skärmar.
Anpassa höjden på rubriker.
Media queries på YouTube
Media queries: print styles på YouTube
Ett sätt att tänka!
Börja med den minsta enheten!
Förbättra för större enheter med media queries.
Det beror på...
Välj någon eller några av de gränser som är meningsfulla för den produkt du bygger.
Använd alltid media queries med min-width.
Placera dina media queries sist i din CSS-fil, i stigande storlek.
Exempel med tre olika storlekar:
/* Regler för minsta storleken. */
@media (min-width: 576px) {
/* Anpassningar för mellanstorleken. */
}
@media (min-width: 992px) {
/* Anpassningar för största storleken. */
}
Media Queries på MDN
Responsive Design Mode på MDN
Media queries breakpoints på devfacts.com
Det mesta!
Händelsestyrt
Keyframes
Sätt en tid för animeringen medtransition.
Ändra på någon egenskap, exempelvis med pseudoklassen :hover eller ett
Javascript.
Exempel:
div {
background-color: rgb(250, 173, 65);
transition: 1s;
}
div:hover {
background-color: rgb(227, 48, 205);
}
Beskriv din animering med en @keyframe-regel.
Här kan du styra
tillståndet vid olika tidpunkter och får på så vis mycket större kontroll över animeringen.
Använd animation för att välja din animering.
Exempel:
div { animation: 5s spinner linear infinite alternate; }
@keyframes spinner {
0%, 100% {
border-radius: 0;
transform: rotate(0deg);
}
50% {
border-radius: 50%;
transform: rotate(360deg);
}