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가지 속성
1.flex-direction
.box { flex-direction: row | row-reverse | column | column-reverse; }
1、flex-direction
属性决定主轴的方向(即项目的排列方向)。.box{ flex-wrap: nowrap | wrap | wrap-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; }
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-shrink
row(기본값): 주축이 수평이고 시작점이 왼쪽 끝에 있습니다.
2. #🎜🎜#flex-wrap#🎜🎜#
속성 정의, 한 축을 정렬할 수 없는 경우 줄 바꿈 방법. #🎜🎜#.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }#🎜🎜##🎜🎜#
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-grow
, flex-shrink
和 flex-basis
的简写,默认值为0 1 auto
。后两个属性可选。
.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }
该属性有两个快捷值: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 중국어 웹사이트의 기타 관련 기사를 참조하세요!