본문 바로가기

웹2 2일차

[혼자 응용하는 능력]
- 요즘에는 챗GPT가 간단한 코드를 거의 구현해주기 때문에 코드의 의미를 제대로 파악하고 스스로 원하는 형태를 만들어낼 수 있는 퍼블리셔나 디자이너나 개발자가 되면 살아남기 좋다.

 

 

[포트폴리오 체력관리 해보기]

- 공부하는 스타일 체크해보기

ㄴ하루에 몇시간 공부했을 때 적절한지 

    - 2시간 공부한면 체력적으로 괜찮고, 3시간 공부하면 다음날이 조금 힘드네??

      나는 2시간만 공부하고 나머지 시간으 개인적으로 활용해야겠다. 

    - 2틀 열심히 복습했더니 2틀동안 손놓고 있는 스타일이구나

      그럼 이틀동안 열심히 복습하고 이틀은 아무것도 안해야지

    - 공부시간이 부족하다고 생각되면 한시간씩 크게 잡지말고

      10분이나 30분씩 조금 더 투자해서 공부시간 늘리기

 

 

 

 

 

[flex-froggy와 함께하는 코드를 생각하는 순서 - 단계별 풀이하기]

 

1

목적: flex-item인 개구리는 중앙으로 정렬하기

문제점: 개구리가 왼쪽으로 정렬되어있다. 

원인: flex-item justify-content의 기본값이 flex-start여서 그렇다. 

해결: justify-content: center;값으로 바꿔준다. 

 

 

2

목적: flex-item인 개구리들이 각각 좌우 여백을 동일하게 갖도록 하기

문제점: 개구리가 왼쪽으로 정렬되어있다. 

원인: flex-item justify-content의 기본값이 flex-start여서 그렇다. 

해결: justify-content: space-around;값으로 바꿔준다. 

 

 

3

목적: flex-item인 개구리들의 간격이 동일하게 배치되도록 하기

문제점: 개구리가 왼쪽으로 정렬되어있다. 

원인: flex-item justify-content의 기본값이 flex-start여서 그렇다. 

해결: justify-content: space-between;값으로 바꿔준다. 

 

 

4

목적: flex-item인 개구리들의 아래에 정렬되도록 하기

문제점: 개구리가 상단에 정렬되어있다. 

원인: flex-item align-items의 기본값이 flex-start여서 그렇다. 

해결: align-items: flex-end;값으로 바꿔준다. 

 

 

5

목적: flex-item인 개구리들이 좌우, 상하 중앙 정렬이 되게 하기

문제점: 개구리가 왼쪽, 상단으로 정렬되어있다. 

원인: flex-item justify-content의 기본값이 flex-start, align-items의 기본값이 flex-start  여서 그렇다. 

해결: justify-content: center; align-items: center;값으로 바꿔준다. 

 

 

6

목적: flex-item인 개구리들이 하단 정렬, 각각 여백 동일하게 갖도록 하기

문제점: 개구리가 왼쪽, 상단에 여백없이 정렬되어 있다. 

원인: flex-item justify-content의 기본값이 flex-start, align-items의 기본값이 flex-start 여서 그렇다. 

해결: justify-content: space-around; align-items: flex-end;값으로 바꿔준다. 

 

 

 

 

[flex-direction]: 배치 정렬

*reverse를 사용하면 요소들의 start와 end의 순서도 바뀝니다. 

row: 한줄에 같이 배치

  - justify-content: 가로 정렬

  - align-items: 세로 정렬

column: 한줄에 같이 배치

  - justify-content: 세로 정렬

  - align-items: 가로 정렬

 

 

7

목적: flex-item인 개구리들이 순서 거꾸로 오른쪽에 정렬되게 하기

원인: flex-item의 flex-direction의 기본값이 row이다. 

해결: flex-direction: row-reverse; 값으로 바꿔준다.

 

 

8

목적: flex-item인 개구리들이 세로로 왼쪽에 정렬되게 한다. 

문제점: 개구리가 왼쪽, 가로로 정렬되어 있다. 

원인: flex-item의 flex-direction의 기본값이 row이다. 

해결: flex-direction: column;값으로 바꿔준다. 

 

 

9

목적: flex-item인 개구리들의 순서만 바꿔준다. 

문제점: 개구리가 왼쪽, 순차적으로 정렬되어 있다. 

원인: flex-item의 flex-direction의 기본값이 row이고, justify-content의 기본값이 flex-start이다. 

해결: flex-direction: row-reverse;값으로 바꾸고 (조건)가로정렬 순서의 앞뒤가 바뀌면 justify-content: flex-end;값으로 바꾼다. 

 

 

 

10

목적: flex-item인 개구리들을 세로로, 하단에 정렬시켜 준다. 

문제점: 개구리들이 상단에 가로로 왼쪽에 정렬되어 있다.  

원인: flex-item의 flex-direction의 기본값이 row, justify-content의 기본값이 flex-start이다. 

해결: flex-direction: column;으로 값을 바꾸고 (조건)가로와 세로정렬이 뒤바뀌어 justify-content: flex-end;로 값을 바꾼다. 

 

 

 

12

목적: flex-item인 개구리들을 간격이 일정하게  세로로 순서를 거꾸로 정렬한다. 

문제점: 개구리들이 가로로 간격없이 정렬되어 있다. 

원인: flex-direction의 기본값이 row이고 justify-content의 기본값이 flex-start이다. 

해결: flex-direction: column-reverse;으로 바꾸고, justify-content: space-between;으로 간격을 일정하게 만들어 준다. 

 

 

 

13

목적: 개구리들을 순서를 거꾸로 하단 중앙에 정렬시킨다. 

문제점: 개구리들이 상단에 왼쪽으로 정렬되어 있다. 

원인: flex-direction의 기본값이 row로 되어 있고, justify-content의 기본값이 flex-start로 되어 있으며 align-items의 기본값이 flex-start로 되어있다. 

해결: flex-direction: row-reverse;값으로 바꿔주고 (조건)정렬의 앞뒤가 뒤바뀌어서 align-items: flex-end;로 바꾸고 justify-content: center로 바꿔준다. 

 

 

 

14

목적: 노란색 개구리를 오른쪽 끝순서에 두고 싶음

문제점: 붉은색 개구리가 끝순서임

원인: 요소의 순서는 태그 순서대로 있음

해결: 노란색 개구리에게 order: 1;를 부여하여 디폴트 값이 order: 0;인 다른 요소들 보다 뒤로 갈 수 있게한다.

 

 

 

15

목적: 붉은색 개구리를 왼쪽 처음순서에 두고 싶음

문제점: 붉은색 개구리가 4번째에 있음

원인: 요소의 순서는 태그 순서대로 있음

해결: 붉은색 개구리에게 order: -1;를 부여하여 디폴트 값이 order: 0;인 다른 요소들 보다 앞으로 갈 수 있게한다.

 

 

 

16

목적: 노란 개구리만 아래로 정렬하고 싶다.   

문제점: flex-item들은 flex-container아래 다같이 움직인다. 

원인: flex-item의 align-self의 기본값은 stretch이다. 

해결: 노란 개구리에만 적용되어 있는 css에 align-self: end;로 바꿔준다. 

 

 

 

 

17

목적: 노란색 개구리를 오른쪽 끝순서에 두면서 아래 끝에 위치하도록 하고싶음

문제점: 노란색 개구리가 초록색 개구리와 섞여있으며 한 줄에 같이 있음

원인: 요소의 순서는 태그 순서대로 있음

해결: 노란색 개구리에게 order: 1;를 부여하여 디폴트 값이 order: 0;인 다른 요소들 보다 오른쪽 끝으로 갈 수 있게한 후, 

         align-self: flex-end;를 부여해서 노란색 개구리만 아래 끝에 위치할 수 있도록 한다.

 

 

 

18

목적: 개구리들을 줄바꿈 시키고 싶다.  

문제점:  개구리들이 한 줄에 다 있다. 

원인: flex-item들의 flex-wrap의 기본값이 nowrap이다. 

해결: flex-wrap: wrap;값으로 바꿔준다. 

 

 

 

19, 20

목적: 개구리들을 줄바꿈 시키고 세로로 정렬시키고 싶다. 

문제점: 개구리들이 가로로 한 줄에 다 들어가 있다. 

원인: flex-wrap의 기본값이 nowrap으로 되어 있다.

해결: flex-wrap: wrap;으로 값을 바꿔주고, flex-direction: column;으로 값을 바꿔준다. 

         = flex-flow: column wrap;

 

 

 

 

21

목적: 줄바꿈된 개구리들이 상단으로 붙게 만들고 싶다.. 

문제점: 개구리들이 줄바꿈의 여백을 나눠갖는다. 

원인: align-contents의 기본값이 stretch이다. 

해결: align-contents: flex-start;값으로 바꿔준다. 

 

 

 

22

목적: 줄바꿈된 개구리들이 하단으로 붙게 만들고 싶다. 

문제점: 개구리들이 줄바꿈의 여백을 나눠갖으며 상단에 배열되어 있다. 

원인: align-contents의 기본값이 stretch이다. 

해결: align-contents: flex-end;값으로 바꿔준다. 

 

 

 

23

목적: 줄바꿈된 개구리들이 세로로 가운데에 배열되어 있게 하고싶다. 순서도 거꾸로 바꾸고 싶다.

문제점: 개구리들이 줄바꿈의 여백을 나눠갖으며 가로로 배열되어 있다.

원인: align-contents의 기본값이 stretch이고, flex-direction의 기본값은 row이다.

해결: align-contents: center;값으로 바꿔주어 가운데에 정렬시킨다.

         flex-direction: column-reverse으로 하여 세로로 정렬시키되 순서가 거꾸로 되게 한다. 

 

 

 

24

목적: 줄바꿈된 개구리들이 세로로 양쪽 끝에 배열되어 있게 하고싶다. 순서도 거꾸로 하고 노란색 개구리만 아래에 배치하고 싶다.

문제점: 개구리들이 기본 일렬로 배열되어 있고, 붉은색 개구리가 왼쪽 끝에 있다.

원인: flex-direction의 기본값은 row이다. align-content의 기본값이 stretch이다. justify-content의 기본값이 flex-start이다.

해결: align-contents: space-between;값으로 바꿔주어 양끝에 정렬시킨다.

         justify-content: center;값으로 바꿔주어 노란색 개구리가 세로 가운데에 있게 한다.

         flex-direction: column-reverse으로 하여 세로로 정렬시키되 순서가 거꾸로 되게 한다. 

 

 

 

 

 

 

[flex-grow]

- flex-container 안에서 여백(^gap ^not margin)을 뺀 나머지 가로 넓이를 비율대로 가져간다. 예시를 들어보자. 

- flex-item들의 flex-grow가 모두 같으면 1:1:1비율로 가져간다. 

- 그래서 flex-container의 넓이가 600px인 상태로 flex-item들이 같은 비율의 가로 넓이를 가지면 233.33..px의 값을 가지게 되는 것이다. 

- 넓이가 딱 떨어지도록 나누어지지 않을 때 사용하면 좋다. 

- 어느 상황에서도 flex-item들의 너비 비율이 일정하도록 하고 싶다면 사용하기 굉장히 용이하다. 

 

- 이번에는 좀 더 자유분방한 비율로, 1:2:1의 너비 비율을 가지는 flex-item을 볼 수 있다. 

 

- flex-container에 gap상속에 상속값을 넣어주면 flex-item들간의 여백이 상속값만큼 생긴다. 

 

- 그러나 마냥 flex-grow만 해준다고 해서 무조건 우리가 생각한 각 요소의 너비의 비율이 일정한 것은 아니다. 

- 실제로 grow의 비율은 요소의 너비가 아니라 flex-item의 content를 제외한 나머지 너비의 비율을 고려한 것이다.  

 

- flex-basis:0;을 flex-item들 모두에게 적용시켜줘야 우리가 생각하는 너비에 grow 비율이 적용되는 것이다.

 

- (주의!) flex-basis:0;과 효과가 같은 것이 width: 0;으로 바꿔주는 것인데 이것은 사실이 아니다. flex-item의 content 너비를 0으로 만들어 줌으로서 같은 효과를 만들어 주지만 flex-item의 content가 줄바꿈이 안되는 성질 때문에 flex-item을 넘어가는 content를 가지면 부모 엘리먼트의 밖으로 나가버리는 일이 생겨버린다. 

 

- (추가!) flex-basis:0;으로 되어 있다고 해서 grow의 비율이 지켜지는 것은 아니다. flex-item도 content의 너비가 커지면 커지는 대로 따라가줘야 하기 때문에 content의 양이 많아져서 부모 엘리먼트보다 커질 경우에는 flex-item이 content를 따라가면서 비율이 깨진다.

 

 

 

 

'' 카테고리의 다른 글

웹2 5일차  (0) 2024.04.24
웹2 4일차  (0) 2024.04.22
웹2 수업페이지  (0) 2024.04.12
웹2 1일차  (0) 2024.04.12
웹1 9일차 - 마켓컬리3  (0) 2024.04.03