<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles/flex-item.css">
<title>Document</title>
</head>
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
<body>
</body>
</html>
.container{
height: 200px;
border:5px dashed orange;
display: flex;
}
.item{
width:50px;
height: 50px;
margin: 5px;
background-color: paleturquoise;
border:3px solid blue;
font-size: 30px;
}
.item:nth-child(3){
order: 1;
}
.item:nth-child(5){
order: 2;
}
item들의 값은 0이기때문에 1을 넣으면 맨 오른쪽으로 이동 왼쪽으로 이동 시에는 -를 사용
-flex-item요소가, flex-container요소 내부에서 할당 가능한 공간의 정도를 선언
.container{
height: 200px;
border:5px dashed orange;
display: flex;
}
.item{
width:50px;
height: 50px;
margin: 5px;
background-color: paleturquoise;
border:3px solid blue;
font-size: 30px;
/* flex-grow: 1; */
}
.item:nth-child(2){
flex-grow: 2;
}
.item:nth-child(3){
flex-grow: 1;
}
수용 가능 한 공간이 남아 있다면 item들끼리 나눠서 공간을 사용 flex-grow의 숫자따라 공간을 차지할 비율을 지정
.container{
height: 200px;
border:5px dashed orange;
display: flex;
}
.item{
width:200px;
height: 50px;
margin: 5px;
background-color: paleturquoise;
border:3px solid blue;
font-size: 30px;
}
.item:nth-child(1){
flex-shrink: 0;
}
.item:nth-child(3){
flex-shrink: 2;
}
컨테이너와 아이탬의 크기가 맞춰서 같이 줄어든다. 하지만 flex-shrink을 0으로 바꾸면 item의 크기는 아무리 웹페이지를 줄여도 자신의 크기를 고집한다 컨테이너의 크기를 2번과 3번이 나눠서 가졌다 grow와 반대로 줄어든 영역을 shrink을 지정해준 요소들끼리 나눠서 가진다.
shrink의 지정 숫자에 따라 줄어든 영역의 크기를 가진다
flex-grow를 1:1:1로 설정했지만 실제로 1:1:1은 늘어난 부분 즉 빨간색 부분이 1:1:1이 된다. 여기서 가로 크기가 1:1:1로 되면 인식하기 쉬운데 여기서 basis를 통해 주황색 영역을 동일하게 맞춰주어야 함.
.container{
height: 200px;
border:5px dashed orange;
display: flex;
}
.item{
height: 50px;
margin: 5px;
background-color: paleturquoise;
border:3px solid blue;
font-size: 30px;
flex-grow: 1;
flex-basis: 0;
}
.item:nth-child(1){
flex-grow: 5;
}
.item:nth-child(2){
flex-grow: 1;
}
.item:nth-child(3){
flex-grow: 3;
}
.container{
height: 200px;
border:5px dashed orange;
display: flex;
}
.item{
height: 50px;
margin: 5px;
background-color: paleturquoise;
border:3px solid blue;
font-size: 30px;
flex:1;
}