본문 바로가기

코드스테이츠 SEB FE 41기/Section 별 내용 정리

section1/unit6/HTML&CSS 활용(8/29)

반응형

블로깅 주제

  • HTML CSS 활용

1. 지금 현재, 당신의 기분이나 느낌을 표현해 주세요.

  • 주말에 푹 쉬고 다시 돌아온 월요일,,, 현실을 부정하고싶었다 ㅠㅠ 하지만 다시 이번주를 열심히 살아봐야지! 이번주 페어프로그래밍도 원활하게 마무리 지었으면 좋겠다!

2. 오늘 무엇을 학습한 내용 중 지금 떠올릴 수 있는 단어를 모두 나열해 주세요.

  • 와이어프레임, 목업, Flexbox

3. 2에서 작성한 단어를 가지고, 오늘의 학습 내용을 설명해 보세요.

- 목업

  • 실제 제품이 작동하는 모습과 동일하게 HTML 문서를 작성
  • 하드코딩(실제 화면에 어떻게 보일지 HTML로 작성해보는 것)
<!-- 실제로는 어떤 로직에 의해서 적절한 위치에 값이 들어가게 됩니다. -->
<div class="writer">김코딩</div>
<div class="content">SNS는 인생의...</div>

- HTML 구성하기

레이아웃 리셋(다음과 같은 문제가 있을 때, 기본 스타일링을 제거하여 디자인한 대로 레이아웃을 구현)

  • 박스의 시작을 정확히 (0,0)의 위치에서 시작하고 싶은데, <body> 요소가 가진 기본 스타일에 약간의 여백이 있습니다.
  • width, height 계산이 여백을 포함하지 않아 계산에 어려움이 있습니다. (이전 유닛을 통해 박스 크기 측정 기준(box-sizing)에 대해 학습한 내용입니다.)
  • 브라우저(크롬, 사파리 등)마다 여백이나 글꼴과 같은 기본 스타일이 조금씩 다릅니다.
//기본 스타일링 제거
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
}

- Flexbox로 레이아웃 잡기

display: flex

1. 부모 요소에 적용

flex-direction : 정렬 정하기 (기본 : 가로)

main {
	display: flex;
	**flex-direction : row;**
}
	/* 부모 요소인 main에 작성하여 자식 요소인 div들을 정렬할 축을 정합니다. */

flex-wrap : 줄 바꿈 설정하기

하위 요소들의 크기가 상위 요소의 크기를 넘으면 자동 줄 바꿈을 할 것인지 정함(설정해주지 않으면 줄바꿈 하지 않음)

main {
	display: flex;
	**flex-wrap : nowrap;**
}
	/* 부모 요소인 main에 작성하여 자식 요소인 div들의 줄 바꿈을 어떻게 할지 정합니다. */

justify-content : 축 수평 방향 정렬

자식 요소들을 축의 수평 방향으로 어떻게 정렬할 것인지 정함

align-items : 축 수직 방향 정렬

자식 요소들을 축의 수직 방향으로 어떻게 정렬할 것인지 정함

2. 자식 요소에 적용

▶ flex 속성의 값

flex:   <grow(팽창 지수)>    <shrink(수축 지수)>    <basis(기본 크기)>
  • grow(팽창 지수) : 요소의 크기가 늘어나야 할 때 얼마나 늘어날 것인지
  • shrink(수축 지수) : 요소의 크기가 줄어들어야 할 때 얼마나 줄어들 것인지
  • basis(기본 크기) : 늘어나고 줄어드는 것과 상관없이 요소의 기본 크기는 얼마인지

자식 요소에 flex 속성을 따로 설정해주지 않으면 다음과 같은 기본값이 적용되며, 왼쪽에서부터 오른쪽으로 콘텐츠의 크기만큼 배치됨

flex: 0 1 auto;

grow

팽창지수 -> 자식 요소의 grow값 / 자식 요소들의 grow값의 총합 의 비율로 빈 공간을 가져감

  • [예시 3]의 box1은 box1의 팽창지수 6 / 팽창지수의 총합 6 + 3 + 1 = 3/5 만큼의 공간을 가져감
  • [예시 4]의 box1은 box1의 팽창지수 60 / 팽창지수의 총합 60 + 30 + 10 = 3/5 만큼의 공간을 가져감

팽창지수의 절대적 크기가 아닌 총합에서의 비율로 빈 공간을 차지!

shrink

grow와 반대로, 설정한 비율만큼 박스 크기가 작아짐

basis

자식 박스가 flex-growflex-shrink 에 의해 늘어나거나 줄어들기 전에 가지는 기본 크기

flex-grow 속성의 값이 0인 경우에만 flex-basis 속성의 값이 유지

세 개의 박스 모두 flex-grow : 1 일 때, 위 예시는 flex-basis : auto, 아래 예시는 flex-basis : 0 으로 설정

-> 아래의 예시만 실제로 1 : 1 : 1 의 너비를 가짐 (flex-grow: 0)

참고)

  • width와 flex-basis를 동시에 적용하는 경우, flex-basis가 우선
  • 콘텐츠가 많아 자식 박스가 넘치는 경우, width가 정확한 크기를 보장하지 않음
  • (flex-basis를 사용하지 않는다면) 콘텐츠가 많아 자식 박스가 넘치는 경우를 대비해, width 대신 max-width를 쓸 수 있음

 

반응형