Display
display-egenskapen bestemmer hvordan et element oppfører seg i layouten. Det er en av de viktigste egenskapene i CSS.
Block
Block-elementer tar full bredde og starter på ny linje.
┌─────────────────────────────────┐
│ Block 1 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ Block 2 │
└─────────────────────────────────┘
┌─────────────────────────────────┐
│ Block 3 │
└─────────────────────────────────┘
Kjennetegn
- Tar full tilgjengelig bredde
- Starter alltid på ny linje
- Kan ha
width,height,marginogpadding
Eksempler på block-elementer
Disse er block som standard:
<div><p><h1>-<h6><ul>,<ol>,<li><header>,<footer>,<main>,<section><form>
Inline
Inline-elementer flyter i teksten og tar bare den plassen de trenger.
Kjennetegn
- Tar bare nødvendig bredde
- Starter ikke på ny linje
widthogheightignoreres- Vertikal
marginogpaddinghar ingen effekt
Eksempler på inline-elementer
Disse er inline som standard:
<span><a><strong>,<em><img>(teknisk inline, men oppfører seg litt annerledes)<code>
Inline-block
Kombinerer det beste fra begge verdener.
Kjennetegn
- Flyter i teksten (som inline)
- Kan ha
width,height,marginogpadding(som block) - Starter ikke på ny linje
Vanlig bruk
None
Skjuler elementet helt. Det tar ingen plass i layouten.
┌───────────┐
│ Synlig │
└───────────┘
← .hidden (usynlig, tar ingen plass)
┌───────────┐
│ Synlig │
└───────────┘
Forskjell fra visibility: hidden
/* display: none - fjerner fra layout */
.gone {
display: none;
}
/* visibility: hidden - usynlig men tar plass */
.invisible {
visibility: hidden;
}
display: none visibility: hidden
┌───────┐ ┌───────┐
│ 1 │ │ 1 │
└───────┘ └───────┘
┌───────┐ ┌ ┐ ← tom plass
│ 3 │ └ ┘
└───────┘ ┌───────┐
│ 3 │
└───────┘
Flex
Aktiverer Flexbox-layout. Se Flexbox for detaljer.
┌─────────────────────────────────┐
│ ┌───────┐ ┌───────┐ ┌───────┐ │
│ │ 1 │ │ 2 │ │ 3 │ │
│ └───────┘ └───────┘ └───────┘ │
└─────────────────────────────────┘
Grid
Aktiverer Grid-layout for to-dimensjonale layouts.
┌─────────────────────────────────┐
│ ┌───────┐ ┌───────┐ ┌───────┐ │
│ │ 1 │ │ 2 │ │ 3 │ │
│ └───────┘ └───────┘ └───────┘ │
│ ┌───────┐ ┌───────┐ ┌───────┐ │
│ │ 4 │ │ 5 │ │ 6 │ │
│ └───────┘ └───────┘ └───────┘ │
└─────────────────────────────────┘
Sammenligning
| Verdi | Ny linje | Width/height | Bruksområde |
|---|---|---|---|
block |
Ja | Ja | Seksjoner, containere |
inline |
Nei | Nei | Tekst, lenker |
inline-block |
Nei | Ja | Knapper, ikoner |
none |
– | – | Skjule elementer |
flex |
Ja | Ja | Én-dimensjonal layout |
grid |
Ja | Ja | To-dimensjonal layout |
Endre standard oppførsel
Du kan endre et elements standard display-verdi:
/* Gjør lenker til block */
a {
display: block;
padding: 10px;
background: #f0f0f0;
}
/* Gjør list items til inline */
li {
display: inline;
}
/* Gjør span til block */
span {
display: block;
}
Praktiske eksempler
Horisontal meny
nav ul {
list-style: none;
padding: 0;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 10px 20px;
text-decoration: none;
}
Vis/skjul med JavaScript
Med DOM-manipulering og Events kan du vise/skjule elementer dynamisk:
Sentrert knapperad
.button-group {
text-align: center;
}
.button {
display: inline-block;
padding: 10px 20px;
margin: 5px;
background: #007bff;
color: white;
border-radius: 4px;
}
Responsiv navigasjon
/* Mobil: vertikal meny */
nav li {
display: block;
}
/* Desktop: horisontal meny */
@media (min-width: 768px) {
nav li {
display: inline-block;
}
}
Oppsummering
| Verdi | Beskrivelse |
|---|---|
block |
Full bredde, ny linje |
inline |
Flyter i tekst |
inline-block |
Flyter, men med størrelse |
none |
Helt skjult |
flex |
Flexbox-container |
grid |
Grid-container |
Velg riktig
- Bruk
blockfor seksjoner og containere - Bruk
inlinefor tekstelementer - Bruk
inline-blockfor knapper og små bokser - Bruk
flexfor én-dimensjonale layouts - Bruk
gridfor to-dimensjonale layouts