Flexbox 상세 정보
In the flex layout model, the children of a flex container can be laid out in any direction, and can “flex” their sizes, either growing to fill unused space or shrinking to avoid overflowing the parent. Both horizontal and vertical alignment of the children can be easily manipulated. Nesting of these boxes (horizontal inside vertical, or vertical inside horizontal) can be used to build layouts in two dimensions.(W3C)
이상은 W3C가 flexbox에 대한 부분적인 해석이다. 대개 flexbox의 출현은 복잡한 웹 레이아웃을 해결하기 위한 것이다. 왜냐하면 이런 레이아웃 방식은 매우 유연하기 때문이다.용기의 하위 요소는 임의의 방향으로 배열할 수 있다.이 속성은 현재 비공식 표준에 처해 있으며, 다음은 각 브라우저가 flexbox에 대한 지원 정도이며, 비교적 새로운 브라우저에서 기본적으로 이 속성을 사용할 수 있다.
Flexbox 모델 및 용어
flex 레이아웃 모델은 블록과 내연 모델의 레이아웃과 다르다. 블록과 내연 모델의 레이아웃 계산은 블록과 내연의 흐름 방향에 의존하고 flex 레이아웃은 flex directions에 의존한다.간단하게 말하자면 Flexbox는 레이아웃 모듈이지 단순한 속성이 아니다. 부모 요소 (flex container) 와 하위 요소 (flex items) 의 속성을 포함한다.
Flexbox 사용 예
수평 세로 가운데
아래의 이 예는 우리가 사용하는 많은 완전 가운데(상하좌우 가운데)입니다. 우리는 여러 가지 방법으로 실현할 수 있지만 현재는 Flexbox로만 실현하는 것이 가장 간단합니다.
center
body{
padding: 0;
margin: 0;
}
.parent {
display: flex;
height: 300px; /* Or whatever */
background-color: black;
}
.child {
width: 100px; /* Or whatever */
height: 100px; /* Or whatever */
margin: auto; /* Magic! */
background-color: white;
}
Flex 컨테이너에서 항목 여백이 auto로 설정된 경우 자동 수직 여백을 설정하면 두 축이 완전히 결합됩니다.
여섯 개의 하위 요소 레이아웃
다시 한 번 예를 들면, 하위 원소의 수량을 6개로 늘린다.여섯 개의 하위 요소는 브라우저의 크기에 따라 레이아웃을 바꿉니다. 미디어로 조회할 필요가 없습니다.
six
- 1
- 2
- 3
- 4
- 5
- 6
body{
margin: 0;
padding: 0;
}
ul {
margin: 0;
padding: 0;
}
li{
list-style: none;
}
.flex-container {
/* We first create a flex layout context */
display: flex;
/* Then we define the flow direction and if we allow the items to wrap
* Remember this is the same as:
* flex-direction: row;
* flex-wrap: wrap;
*/
flex-flow: row wrap;
/* Then we define how is distributed the remaining space */
justify-content: space-around;
}
.flex-item {
background: tomato;
padding: 5px;
width: 200px;
height: 150px;
margin-top: 10px;
line-height: 150px;
color: white;
font-weight: bold;
font-size: 3em;
text-align: center;
}
효과는 다음과 같습니다.
그림의 효과를 실현하려면 세 가지 속성을 설정해야 한다:flex-direction:row;flex-wrap: wrap; justify-content: space-around;다음 섹션에서는 각 속성에 대해 설명합니다.
등록 정보
1.display(flex container)
display: other values | flex | inline-flex;
2.flex-direction(flex container)
이것은 주로 주축을 만드는 데 사용되며, 신축 항목이 신축 용기에 놓이는 방향을 정의합니다.
flex-direction: row | row-reverse | column | column-reverse
3. order(flex items) 기본적으로 신축 항목은 문서 흐름에 따라 선후 순서로 배열됩니다.그러나'order'속성은 신축 항목이 신축 용기에 나타나는 순서를 제어할 수 있다.
order:
4.flex-wrap(flex container)이란 주로 신축 용기에 한 줄로 표시되는지 여러 줄로 표시되는지 정의하는데 사용되며, 옆축의 방향은 새 줄이 쌓이는 방향을 결정한다.
flex-wrap: nowrap | wrap | wrap-reverse
flex-flow: ||
div { flex-flow: row; }/* Initial value. Main-axis is inline, no wrap. */
div { flex-flow: row-reverse wrap-reverse; }/* Main-axis is the opposite of inline direction(right to left). New lines wrap upwards. */
6.justify-content(flex container) 이것은 신축 항목이 주축선을 따라 정렬되는 방식을 정의하는 데 사용됩니다.한 줄의 모든 신축 항목이 신축되거나 신축될 수 없지만 최대 길이에 도달했을 때, 이 속성은 여분의 공간을 분배할 수 있습니다.항목이 한 줄을 넘을 때, 이 속성도 항목의 정렬에 약간의 제어를 가한다.
justify-content: flex-start | flex-end | center | space-between | space-around;
7.align-content(flex container) 이 속성은 주로 신축 줄이 신축 용기에 있는 정렬 방식을 조정하는 데 사용된다.신축 항목이 메인 축에'justify-content'를 사용하는 것과 같다.
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
8.align-items(flex container)
align-items: flex-start | flex-end | center | baseline | stretch
9.align-self(flex items)는 단독 신축 항목에 기본 정렬 방식을 덮어쓰는 데 사용됩니다.
align-self: auto | flex-start | flex-end | center | baseline | stretch;
10.flex-grow(flex items)는 필요에 따라 신축 항목의 확장 능력을 정의합니다.그것은 단위가 없는 값을 비례로 받아들인다.주로 신축 용기의 남은 공간을 비례에 따라 얼마나 확장해야 하는지를 결정하는 데 쓰인다.
flex-grow: ; /* default 0 */
모든 신축 항목의 'flex-grow' 가 '1' 을 설정하면, 모든 신축 항목은 크기가 같은 남은 공간으로 설정됩니다.만약 그 중 하나의 신축 항목에'flex-grow'값을'2'로 설정한다면 이 신축 항목이 차지하는 잉여 공간은 다른 신축 항목이 차지하는 잉여 공간의 두 배이다.다음 그림은 다음과 같습니다.
11.flex-shrink(flex items)는 필요에 따라 신축 항목의 수축 능력을 정의한다.[참고: 마이너스 값도 유효합니다.]
flex-shrink: ; /* default 1 */
12.flex-basis(flex items)는 신축 기준치를 설정하고 나머지 공간은 비율에 따라 신축한다.
flex-basis: | auto; /* default auto */
"0"으로 설정하면 나머지 공백은 고려하지 않습니다.자동으로 설정하면 flex-grow 값에 따라 남은 공백 공간을 분배합니다.그림과 같이
13.flex(flex items)는'flex-grow','flex-shrink','flex-basis'세 가지 속성의 줄임말이다.그 중에서 두 번째와 세 번째 매개 변수(flex-shrink,flex-basis)는 선택할 수 있는 매개 변수이다.기본값은 0 1 auto입니다.
flex: none | [ ? || ]
기타 자원
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
중간 데이터의 스키마를 안전하게 변경하는 단계한 데이터베이스 (스토리지)의 테이블 (경로)에 열 (필드) a가 있고 그것을 읽고 쓰고 있다고 가정합니다. 이 흐름에 b를 추가하는 절차를 생각해 봅시다. 테이블에 열 b를 NULL 권한 (선택 사항)으로 추가합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.