>  기사  >  웹 프론트엔드  >  CSS3 플렉스 레이아웃 요약

CSS3 플렉스 레이아웃 요약

angryTom
angryTom앞으로
2020-02-21 17:49:021928검색

CSS3 플렉스 레이아웃 요약

CSS3 플렉스 레이아웃 요약

2009년 W3C는 새로운 솔루션을 제안했습니다 --- -Flex 레이아웃 다양한 페이지 레이아웃을 간단하고 완전하며 반응적으로 구현할 수 있습니다. 현재는 모든 브라우저에서 지원됩니다.

Flex는 유연한 상자(Flexible Box)의 약어로 "탄력적인 레이아웃"을 의미하며 상자 모양 모델에 최대한의 유연성을 제공하는 데 사용됩니다. 모든 컨테이너를 Flex 레이아웃으로 지정할 수 있습니다.

(권장 학습: CSS 튜토리얼 )

인라인 요소는 Flex 레이아웃을 사용할 수도 있습니다.

.box{
  display: flex;
}
.box{
  display: inline-flex;
}

Webkit 코어가 있는 브라우저는 -webkit 접두사를 추가해야 한다는 점에 유의해야 합니다.

.box{
  display: -webkit-flex; /* Safari */
  display: flex;
}

또한 Flex 레이아웃으로 설정한 후에는 하위 요소의 부동, 투명 및 수직 정렬 속성이 유효하지 않게 됩니다.

플렉스 레이아웃에 일반적으로 사용되는 6가지 속성

  • flex-direction
  • flex-wrap#🎜 🎜## 🎜🎜#flex-flow
  • justify-content
  • align-items
  • align-content
  • #🎜🎜 #
  • 1.flex-direction
속성은 주축의 방향(즉, 항목의 배열 방향)을 결정합니다.

.box {
  flex-direction: row | row-reverse | column | column-reverse;
}
1、flex-direction属性决定主轴的方向(即项目的排列方向)。

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}
  • row(默认值):主轴为水平方向,起点在左端。
  • row-reverse:主轴为水平方向,起点在右端。
  • column:主轴为垂直方向,起点在上沿。
  • column-reverse:主轴为垂直方向,起点在下沿。

2、<strong>flex-wrap</strong>属性定义,如果一条轴线排不下,如何换行。

.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}
  • nowrap(默认):不换行。
  • wrap:换行,第一行在上方。
  • wrap-reverse:换行,第一行在下方。

3、<strong>flex-flow</strong>属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

-content: flex-start | flex-end | center | space-between | space-

4、<strong>justify-content</strong>属性定义了项目在主轴上的对齐方式。

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}
  • flex-start(默认值):左对齐
  • flex-end:右对齐
  • center: 居中
  • space-between:两端对齐,项目之间的间隔都相等。
  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

5、<strong>align-items</strong>属性定义项目在交叉轴上如何对齐。

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
  • flex-start:交叉轴的起点对齐。
  • flex-end:交叉轴的终点对齐。
  • center:交叉轴的中点对齐。
  • baseline: 项目的第一行文字的基线对齐。
  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

6、<strong>align-content</strong>属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

.item {
  order: <integer>;
}

该属性可能取6个值。

  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
  • stretch(默认值):轴线占满整个交叉轴。

 还有以下6个属性设置在项目上。

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

 order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。

.item {
  flex-grow: <number>; /* default 0 */}

flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。

.item {
  flex-shrink: <number>; /* default 1 */}

如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。

.item {
  flex-basis: <length> | auto; /* default auto */}

如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrinkrow(기본값): 주축이 수평이고 시작점이 왼쪽 끝에 있습니다.

#🎜🎜#row-reverse: 주축이 수평이고 시작점이 오른쪽 끝에 있습니다. #🎜🎜##🎜🎜#column: 주축은 수직이고 시작점은 위쪽 가장자리에 있습니다. #🎜🎜##🎜🎜#column-reverse: 주축이 수직이고 시작점이 아래쪽 가장자리에 있습니다. #🎜🎜##🎜🎜##🎜🎜#2. #🎜🎜#flex-wrap#🎜🎜#속성 정의, 한 축을 정렬할 수 없는 경우 줄 바꿈 방법. #🎜🎜#
.item {
  flex: none | [ <&#39;flex-grow&#39;> <&#39;flex-shrink&#39;>? || <&#39;flex-basis&#39;> ]
}
#🎜🎜##🎜🎜#nowrap(기본값): 줄 바꿈이 없습니다. #🎜🎜##🎜🎜#wrap: 줄 바꿈, 첫 번째 줄이 맨 위에 오도록 합니다. #🎜🎜##🎜🎜#wrap-reverse: 줄 바꿈, 첫 번째 줄은 아래에 있습니다. #🎜🎜##🎜🎜##🎜🎜#3, #🎜🎜#flex-flow#🎜🎜# 속성은 flex-direction 속성이고 flex -wrap 속성의 약어로, 기본값은 row nowrap입니다. #🎜🎜#
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
#🎜🎜#4. #🎜🎜#justify-content#🎜🎜#속성은 주축의 항목 정렬을 정의합니다. #🎜🎜#
.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
#🎜🎜##🎜🎜#flex-start(기본값): 왼쪽 정렬 #🎜🎜##🎜🎜#flex-end: 오른쪽 정렬 #🎜🎜##🎜🎜#center: 가운데 #🎜 🎜 ##🎜🎜#space-between: 양쪽 끝을 정렬하고 항목 사이의 간격을 동일하게 만듭니다. #🎜🎜##🎜🎜#space-around: 각 항목이 양쪽에 동일한 간격으로 배치되어 있습니다. 따라서 항목 사이의 공간은 항목과 테두리 사이의 공간의 두 배입니다. #🎜🎜##🎜🎜##🎜🎜#5. #🎜🎜#align-items#🎜🎜#속성은 항목이 교차 축에 정렬되는 방식을 정의합니다. #🎜🎜#rrreee#🎜🎜##🎜🎜#flex-start: 교차축의 시작점을 정렬합니다. #🎜🎜##🎜🎜#flex-end: 교차축의 끝점 정렬입니다. #🎜🎜##🎜🎜#중앙: 교차축의 중간점을 정렬합니다. #🎜🎜##🎜🎜#baseline: 항목 텍스트 첫 줄의 기준선 정렬입니다. #🎜🎜##🎜🎜#stretch(기본값): 항목이 높이를 설정하지 않거나 자동으로 설정된 경우 컨테이너의 전체 높이를 차지합니다. #🎜🎜##🎜🎜##🎜🎜#6. #🎜🎜#align-content#🎜🎜#속성은 여러 축의 정렬을 정의합니다. 프로젝트에 축이 하나만 있는 경우 이 속성은 효과가 없습니다. #🎜🎜#rrreee#🎜🎜#이 속성은 6개의 값을 가질 수 있습니다. #🎜🎜##🎜🎜##🎜🎜#flex-start: 교차축의 시작점에 맞춰 정렬됩니다. #🎜🎜##🎜🎜#flex-end: 교차축의 끝점에 맞춰 정렬됩니다. #🎜🎜##🎜🎜#중앙: 교차축의 중간점에 맞춰 정렬됩니다. #🎜🎜##🎜🎜#space-between: 교차축의 양쪽 끝에 정렬되며, 축 사이의 간격이 균등하게 분포됩니다. #🎜🎜##🎜🎜#space-around: 각 축의 양쪽 간격이 동일합니다. 따라서 축 사이의 거리는 축과 프레임 사이의 거리의 두 배입니다. #🎜🎜##🎜🎜#stretch(기본값): 축이 전체 교차 축을 차지합니다. #🎜🎜##🎜🎜##🎜🎜# 프로젝트에는 다음과 같은 6가지 속성이 설정되어 있습니다. #🎜🎜##🎜🎜##🎜🎜#주문#🎜🎜##🎜🎜#flex-grow#🎜🎜##🎜🎜#flex -shrink#🎜🎜##🎜🎜#플렉스 기반#🎜🎜##🎜🎜#플렉스#🎜🎜##🎜🎜#align-self#🎜🎜##🎜🎜##🎜🎜# order 속성은 항목이 정렬되는 순서를 정의합니다. 값이 작을수록 순위가 높아집니다. 기본값은 0입니다. #🎜🎜##🎜🎜#rrreee#🎜🎜# flex-grow 속성은 항목의 확대 비율을 정의합니다. 기본값은 0입니다. 남은 공간이므로 확대되지 않습니다. #🎜🎜#rrreee#🎜🎜#모든 항목의 flex-grow 속성이 1인 경우 남은 공간(있는 경우)을 균등하게 나눕니다. 한 항목의 flex-grow 속성이 2이고 다른 항목이 1인 경우 전자는 다른 항목보다 남은 공간의 두 배를 차지합니다. #🎜🎜##🎜🎜# flex-shrink 속성은 항목의 축소 비율을 정의합니다. 즉, 공간이 부족하면 항목이 축소됩니다. #🎜🎜#rrreee#🎜🎜#모든 항목의 flex-shrink 속성이 1인 경우 공간이 부족할 경우 비례하여 모두 축소됩니다. 한 항목의 flex-shrink 속성이 0이고 다른 항목이 1인 경우 전자는 공간이 부족할 때 축소되지 않습니다. #🎜🎜#

flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

.item {
  flex-basis: <length> | auto; /* default auto */}

flex属性是flex-growflex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。

.item {
  flex: none | [ <&#39;flex-grow&#39;> <&#39;flex-shrink&#39;>? || <&#39;flex-basis&#39;> ]
}

该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

위 내용은 CSS3 플렉스 레이아웃 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제