CHAPTER 1. 와이어프레임
1. 와이어프레임 : 웹 또는 애플리케이션을 개발할 때 레이아웃의 뼈대를 그리는 단계
아주 단순하게 레이아웃과 제품의 구조를 보여주는 용도
2. 목업(Mock-up) : 실제 제품이 작동하는 모습과 동일하게 HTML 문서를 작성 (하드코딩)
- 하드코딩 : 변수값을 html 문서 내에 하나하나 입력하는 방식
3. HTML 구성하기 : 수직 분할과 수평 분할을 차례대로 적용하여 콘텐츠의 흐름에 따라 작업 진행
- 수직 분할 : 화면을 수직으로 구분하여, 콘텐츠가 가로로 배치될 수 있도록 요소를 배치
- 수평 분할 : 분할된 각각의 요소를 수평으로 구분하여, 내부 콘텐츠가 세로로 배치될 수 있도록 요소를 배치수평으로 구분된 요소에 height 속성을 추가하면, 수평 분할을 보다 직관적으로 할 수 있음
4. 레이아웃 리셋 : HTML 문서가 갖는 기본 스타일이, 레이아웃을 잡는 데 방해가 되는 경우, 기본 스타일을 제거해 줌.
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
CHAPTER 2. Flexbox
1. Flexbox : 박스를 유연하게 늘리거나 줄여 레이아웃을 잡는 방법
display: flex 는 부모 박스 요소에 적용해, 자식 박스의 방향과 크기를 결정하는 레이아웃 구성 방법
2. 부모 요소에 적용해야 하는 Flexbox 속성들
flex-direction : 정렬 축 정하기
ain {
display: flex;
**flex-direction : row;**
}
- row(기본값), column, row-reverse, column-reverse
flex-wrap : 줄 바꿈 설정하기
main {
display: flex;
**flex-wrap : nowrap;**
}
- nowrap(기본값), wrap, wrap-reverse
justify-content : 축 수평 방향 정렬
- 가로로 정렬되어 있다면 가로 방향으론 어떻게 정렬할 것인지, 세로로 정렬되어 있다면 세로 방향으론 어떻게 정렬할 것인지 결정
- 주요 속성값 : flex-start , flex-end, center, space-between, space-around
!https://blog.kakaocdn.net/dn/b2aluX/btrKU6Of7IE/FIG7cd79rpW3dapKua4in1/img.png
align-items : 축 수직 방향 정렬
- 요소들이 가로로 정렬되어 있다면 세로 방향으론 어떻게 정렬할 것인지, 세로로 정렬되어 있다면 가로 방향으론 어떻게 정렬할 것인지 결정
- 주요 속성값 : tretch , flex-start , flex-end , center , baseline
!https://blog.kakaocdn.net/dn/Hu240/btrKTPfwOYi/BHpZeX8tOwsfxrsS74xrHK/img.png
3, 자식 요소에 적용해야 하는 Flexbox 속성
- 부모 요소에 적용해야 하는 속성들이 자식 요소들의 정렬과 관련이 있었다면, 자식 요소에게 적용해야 하는 속성인 flex 는 요소가 차지하는 공간과 관련이 있다.
flex 속성의 값 : 세 가지 값을 지정해줄 수 있음.
flex: <grow(팽창 지수)> <shrink(수축 지수)> <basis(기본 크기)>
- grow(팽창 지수) : 요소의 크기가 늘어나야 할 때 얼마나 늘어날 것인지. / 팽창지수의 절대적 크기가 아닌 총합에서의 비율로 빈 공간을 차지
- shrink(수축 지수) : 요소의 크기가 줄어들어야 할 때 얼마나 줄어들 것인지 / flex-grow 속성으로 비율을 변경하는 경우, flex-shrink 속성은 기본값인 1로 두어도 무방함.
- basis(기본 크기) : 늘어나고 줄어드는 것과 상관없이 요소의 기본 크기는 얼마인지 / flex-grow 가 0일 때, basis 크기를 지정하면 그 크기는 유지
- 기본값 :
flex: 0 1 auto;
- width와 flex-basis를 동시에 적용하는 경우, flex-basis가 우선
- 콘텐츠가 많아 자식 박스가 넘치는 경우, width가 정확한 크기를 보장하지 않음
- (flex-basis를 사용하지 않는다면) 콘텐츠가 많아 자식 박스가 넘치는 경우를 대비해, width 대신 max-width를 쓸 수 있음