CSS Flexbox
- Forrige side CSS Box Sizing
- Næste side CSS medieforespørgsler
CSS Flexbox Layout Module
Før Flexbox-layoutmodulen (blev lanceret), var der tilgængelige fire forskellige layoutmønstre:
- blok (Block), brugt til dele af en webside (sektion)
- inline (Inline), brugt til tekst
- tabeller, brugt til to维表数据
- positionering, brugt til elementernes præcise placering
Flexbox-layoutmodulen, som gør det lettere at designe fleksible responsive layoutstrukturer uden at bruge flydende eller positionering.
browser-understøttelse
alle moderne browsere understøtter flexbox
egenskaber.
29.0 | 11.0 | 22.0 | 10 | 48 |
Flexbox-elementer
For at begynde at bruge Flexbox-modellen, skal du først definere en Flex-container.
Disse elementer repræsenterer en flex-kontainer med tre fleksible elementer (blåt område).
实例
en flex-kontainer med tre fleksible elementer:
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> </div>
forældreelementet (kontaineren)
ved at bruge display
Egenskaben sættes til flex
flex-kontaineren vil være skalérbar:
实例
.flex-container { display: flex; }
Her er egenskaberne for flex-kontaineren:
flex-direction egenskab
flex-direction
Egenskaben definerer, i hvilken retning kontaineren skal overlappe fleksible elementer.
实例
column
Værdien sætter vertikale fleksible elementer (fra top til bund):
.flex-container { display: flex; flex-direction: column; }
实例
column-reverse
Værdien lægger fleksible elementer vertikalt (fra bund til top):
.flex-container { display: flex; flex-direction: column-reverse; }
实例
row
Værdien lægger fleksible elementer horisontalt (fra venstre til højre):
.flex-container { display: flex; flex-direction: row; }
实例
row-reverse
Værdien lægger fleksible elementer horisontalt (fra højre til venstre):
.flex-container { display: flex; flex-direction: row-reverse; }
flex-wrap egenskab
flex-wrap
Egenskaben bestemmer, om fleksible elementer skal rulles hen over.
Dette eksempel indeholder 12 fleksible elementer for bedre at demonstrere flex-wrap-egenskaben.
实例
wrap
Værdien bestemmer, at de fleksible elementer skal rulles hen over, hvis nødvendigt:
.flex-container { display: flex; flex-wrap: wrap; }
实例
nowrap
Værdien bestemmer, at der ikke skal rulles hen over de fleksible elementer (standard):
.flex-container { display: flex; flex-wrap: nowrap; }
实例
wrap-reverse
Værdien bestemmer, om de fleksible elementer skal rulles hen over i omvendt rækkefølge, hvis nødvendigt:
.flex-container { display: flex; flex-wrap: wrap-reverse; }
flex-flow egenskab
flex-flow
Egenskaben er en kortform for at sætte både flex-direction og flex-wrap egenskaber.
实例
.flex-container { display: flex; flex-flow: row wrap; }
justify-content egenskab
justify-content
Egenskaben bruges til at justere flex-elementer:
实例
center
Værdien justerer flex-elementerne i midten af kontaineren:
.flex-container { display: flex; justify-content: center; }
实例
flex-start
Værdien justerer flex-elementerne til begyndelsen af kontaineren (standard):
.flex-container { display: flex; justify-content: flex-start; }
实例
flex-end
Værdien justerer flex-elementerne til enden af kontaineren:
.flex-container { display: flex; justify-content: flex-end; }
实例
space-around
Værdien viser flex-elementer med mellemrum før, mellem og efter rækkerne:
.flex-container { display: flex; justify-content: space-around; }
实例
space-between
Værdien viser flex-elementer med mellemrum mellem rækkerne:
.flex-container { display: flex; justify-content: space-between; }
align-items egenskab
align-items
Egenskaben bruges til at justere flex-elementer lodret.
I disse eksempler bruger vi et container med en højde på 200 pixels for at demonstrere align-items-egenskaben bedre.
实例
center
Værdien justerer fleksible elementer i midten af kontaineren:
.flex-container { display: flex; height: 200px; align-items: center; }
实例
flex-start
Værdien justerer fleksible elementer i toppen af kontaineren:
.flex-container { display: flex; height: 200px; align-items: flex-start; }
实例
flex-end
Værdien justerer fleksible elementer i bunden af kontaineren:
.flex-container { display: flex; height: 200px; align-items: flex-end; }
实例
stretch
Værdien strækker fleksible elementer for at fylde kontaineren (standard):
.flex-container { display: flex; height: 200px; align-items: stretch; }
实例
baseline
Værdien gør fleksible elementer baselines justerede:
.flex-container { display: flex; height: 200px; align-items: baseline; }
Bemærk:Dette eksempel bruger forskellige font-size-værdier til at demonstrere, at elementerne er justeret efter tekstens baselines:
align-content egenskab
align-content
Egenskaben bruges til at justere fleksible linjer.
I disse eksempler bruger vi en kontainer med en højde på 600 pixels og sætter flex-wrap-egenskaben til wrap for bedre at demonstrere align-content-egenskaben.
实例
space-between
Værdien viser fleksible linjer med lige mellemrum mellem dem:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-between; }
实例
space-around
Værdien viser fleksible linjer med mellemrum før, mellem og efter:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-around; }
实例
stretch
Værdien strækker fleksible linjer for at tage op det resterende rum (standard):
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: stretch; }
实例
center
Værdien vises i midten af kontaineren med fleksible linjer:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: center; }
实例
flex-start
Værdien vises i toppen af kontaineren med fleksible linjer:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-start; }
实例
flex-end
Værdien vises i bunden af kontaineren med fleksible linjer:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-end; }
Perfekt centreret
I nedenstående eksempel vil vi løse et meget almindeligt stilproblem: Perfekt centreret.
Løsning: Brug justify-content
og align-items
Egenskaben er indstillet til centreret, derefter vil flex-elementerne blive perfekt centreret:
实例
.flex-container { display: flex; height: 300px; justify-content: center; align-items: center; }
Underelementer (elementer)
Flex-containereleks direkte underelementer bliver automatisk fleksible (flex) elementer.
Disse elementer repræsenterer fire blå fleksible items inden for en grå fleksibel beholder.
实例
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div>
Egenskaberne, der bruges til fleksible items, er:
order
flex-grow
flex-shrink
flex-basis
flex
align-self
order egenskab
order
Egenskaben definerer rækkefølgen af fleksible items.
Det første flex item i koden behøver ikke at vises som det første element i layoutet.
order
Værdien skal være et tal, standardværdien er 0.
实例
order
Egenskaben kan ændre rækkefølgen af fleksible items.
<div class="flex-container"> <div style="order: 3">1</div> <div style="order: 2">2</div> <div style="order: 4">3</div> <div style="order: 1">4</div> </div>
flex-grow egenskab
flex-grow
Egenskaben definerer hvor meget en flex item vil vokse i forhold til de andre flex items.
Værdien skal være et tal, standardværdien er 0.
实例
Gør den tredje fleksible items vækst hastighed otte gange hurtigere end de andre fleksible items:
<div class="flex-container"> <div style="flex-grow: 1">1</div> <div style="flex-grow: 1">2</div> <div style="flex-grow: 8">3</div> </div>
flex-shrink egenskab
flex-shrink
Egenskaben definerer hvor meget en flex item vil kontrahere i forhold til de andre flex items.
Værdien skal være et tal, standardværdien er 0.
实例
Lad den tredje fleksible item ikke kontrahere så meget som de andre fleksible items:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-shrink: 0">3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> </div>
flex-basis egenskab
flex-basis
Egenskaben definerer den inital længde for en flex item.
实例
Sæt den tredje fleksible items initial længde til 200 pixels:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-basis: 200px">3</div> <div>4</div> </div>
flex egenskab
flex
Egenskaben er en forkortelse for egenskaberne flex-grow, flex-shrink og flex-basis.
实例
Gør den tredje fleksible item uudvidelig (0), uudvidelig (0) og med en initial længde på 200 pixels:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex: 0 0 200px">3</div> <div>4</div> </div>
align-self egenskab
align-self
Egenskaber definerer justeringsmåden for de valgte elementer i en fleksibel beholder.
align-self
属性将覆盖容器的 align-items 属性所设置的默认对齐方式。
在这些例子中,我们使用 200 像素高的容器,以便更好地演示 align-self 属性:
实例
把第三个弹性项目对齐到容器的中间:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="align-self: center">3</div> <div>4</div> </div>
实例
将第二个弹性项目在容器顶部对齐,将第三个弹性项目在容器底部对齐:
<div class="flex-container"> <div>1</div> <div style="align-self: flex-start">2</div> <div style="align-self: flex-end">3</div> <div>4</div> </div>
CSS Flexbox 属性
下表列出了与 flexbox 一起使用的 CSS 属性:
属性 | 描述 |
---|---|
display | 规定用于 HTML 元素的盒类型。 |
flex-direction | 规定弹性容器内的弹性项目的方向。 |
justify-content | 当弹性项目没有用到主轴上的所有可用空间时,水平对齐这些项目。 |
align-items | 当弹性项目没有用到主轴上的所有可用空间时,垂直对齐这些项。 |
flex-wrap | 规定弹性项目是否应该换行,若一条 flex 线上没有足够的空间容纳它们。 |
align-content | 修改 flex-wrap 属性的行为。与 align-items 相似,但它不对齐弹性项目,而是对齐 flex 线。 |
flex-flow | flex-direction 和 flex-wrap 的简写属性。 |
order | 规定弹性项目相对于同一容器内其余弹性项目的顺序。 |
align-self | 用于弹性项目。覆盖容器的 align-items 属性。 |
flex | flex-grow、flex-shrink 以及 flex-basis 属性的简写属性。 |
- Forrige side CSS Box Sizing
- Næste side CSS medieforespørgsler