플렉스 아이템
flex 아이템(자식) 요소 속성
flex-Grow
기본값 : 0
아이템 박스의 크기를 늘린다.
컨테이너 박스를 각 item이 설정한 grow 값만큼 공평하게 나눠갖는다.
만약 여러 item중 한 개의 크기를 더 크게 만들고 싶다면 해당 item에 grow속성을 추가로 적용한다.
<style> <!-- 1 --> .flex-item { flex-grow: 1; <!-- 아이템을 5개로 지정했을 때 각 아이템이 5/1만큼씩 컨테이너 공간을 나눠가진다 --> } .flex-item:nth-child(2) { flex-grow: 2; <!-- 6/2만큼의 공간을 가져간다. --> } <!-- 2 --> <!-- 값이 0일 때 --> .flex-item { flex-grow: 0; } .flex-item:nth-child(2) { flex-grow: 2; <!-- 컨테이너박스의 남은 여백 공간을 모두 가져간다. 또한 해당 자식요소의 grow속성에 어떠한 값을 적용해도 똑같이 렌더링된다. --> } </style>
flex-shrink
기본값 : 1 (부모 컨테이너의 크기에 맞추게됨)
아이템 박스의 크기를 줄인다.
특정한 item의 크기를 설정한 basis값 만큼 고정한다. (반드시 basis의 값이 있어야 적용가능)
<style>
<!-- 1 -->
.flex-item:nth-child(1) {
flex-basis: 150px;
flex-shrink: 0; <!-- 값이 0일 때, 설정한 크기 고정. -->
}
<!-- 2 -->
.flex-item:nth-child(1) {
flex-basis: 150px;
flex-shrink: 1; <!-- 3/1만큼 줄어듬 -->
}
.flex-item:nth-child(2) {
flex-basis: 150px;
flex-shrink: 2; <!-- 3/2만큼 줄어듬 -->
}
</style>
flex-Basis
item의 크기를 정한다.
<style> .flex-item:nth-child(2) { flex-basis: 200px; } </style>
flex(속기형)
.flex-item {
flex: grow shrink basis; /* 기본값 : 0 1 auto*/
}
order
아이템 순서 설정
원래는 마크업 순서대로 렌더링되지만 order속성을 사용해서 특정 아이템 박스의 위치를 임의로 설정가능하다.
order
값이 같은 경우 마크업된 순서로 우선권을 가진다.
.flex-item {
width: 50px;
height: 50px;
margin-bottom: 1px;
font-size: 2rem;
line-height: 1;
color: #fff;
}
.flex-item:nth-child(1) {
order: -1;
background: #d9727b;
}
.flex-item:nth-child(2) {
order: 0;
background: #735454;
}
.flex-item:nth-child(3) {
order: -2;
background: #342c40;
}
.flex-item:nth-child(4) {
order: 0;
background: #f2ad94;
}
align-self
자식 자신에게 속성을 적용할 때 사용
auto/ flex-start/ flex-end/ center/ baseline/ stretch
.flex-item:nth-child(1) {
align-self: flex-start;
background: #d9727b;
}
/* 또는 */
.flex-item:nth-child(1) {
flex: 2 0 20px;
height: 100px;
align-self: flex-start;
background: #d9727b;
}
Last updated
Was this helpful?