부트캠프/TIL
코드스테이츠 프론트엔드 부트캠프 Day 6 - HTML & CSS 와이어 프레임, 영역 나누기, 레이아웃
하이고니
2022. 12. 22. 13:23
목표
코드
HTML
<div id="container">
<div class="col w10">
<div class="icon">아이콘 1</div>
<div class="icon">아이콘 2</div>
<div class="icon">아이콘 3</div>
</div>
<div class="col w20">
<div class="row h40">영역 1</div>
<div class="row h40">영역 2</div>
<div class="row h20">영역 3</div>
</div>
<div class="col w70">
<div class="row h80">영역 4</div>
<div class="row h20">영역 5</div>
</div>
</div>
CSS
* {
margin: 10px;
padding: 10px;
font-family: system-ui, -apple-system, BlinkMacSystemFont,
'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans',
'Helvetica Neue', sans-serif;
font-size: 16px;
}
body {
display: flex;
flex-direction: row;
flex-basis: 0;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
#container {
display: flex;
flex-direction: row;
flex-basis: 0;
align-items: center;
justify-content: center;
width: 70vw;
height: 70vh;
}
.col {
display: flex;
flex-direction: column;
flex-basis: 0;
border: 1px solid red;
}
.w10 {
align-items: center;
flex-grow: 1;
}
.icon {
display: flex;
align-items: center;
justify-content: center;
width: 80px;
height: 80px;
}
.row {
display: flex;
align-items: center;
justify-content: center;
border: 1px dotted blue;
}
.w20 {
flex-grow: 2;
}
.w70 {
flex-grow: 7;
}
.icon {
border: 1px dotted pink;
}
.h80 {
flex-grow: 8;
}
.h40 {
flex-grow: 4;
}
.h20 {
flex-grow: 2;
}
결과1
수정1
#container {
display: flex;
flex-direction: row;
flex-basis: 0;
align-items: stretch; /* center 에서 stretch 로 변경 */
justify-content: center;
width: 100vw;
height: 70vh;
}
결과2 (수직 길이 동일)
수정2
#container {
display: flex;
flex-direction: row;
/* flex-basis: 0; */
align-items: stretch;
justify-content: center;
width: 70vw;
height: 70vh;
}
결과3 (수평 길이 원하는 비율로 늘어남)
+
body 의 flex-basis 를 0 으로 바꿔도 아무런 문제가 없다.
Feedback
flex-basis 에 대한 공부가 더 필요함.