웹1

웹1 12일차 (24.01.26)

멋쟁이토마토★ 2024. 1. 26. 12:53

flex-grow ,  flex-shrink ,  flex-basis 는 

flex-container가 아닌 flex-container의 자식요소에게 직접적으로 지정해줘야한다.

 

 

[flex-grow]

=> flex-item이 flex-container남는 공간을 사용하겠다는 의미.

 

item은 총 3개.

flex-grow가 하나씩으로 총 3개이기 때문에

총 너비값 600에서 3개로 나누면 하나당 200씩 나온다.

3개의 item이 grow를 각각 하나씩 가지니, 모두 200px의 너비를 각자 가지게 된다.

 

 

 

item-1 은 1

item-2 는 2

item-3 은 1

총 너비 600을 4로 나누면 하나당 150씩 나온다.

item-2는 2개를 가지고 있기 때문에 150을 2개 가져가서 300px.

 

https://codepen.io/hayeong0409/pen/WNmXvJP?editors=1100

 

flex-grow

...

codepen.io

 

 

 


 

[ flex-basis ]

flex-grow를 사용하면 하위요소 크기에 따라 비율이 달라지는데

그것을 방지하기 위해 사용함.

 

flex-grow를 사용하면 하위요소 크기에 따라 비율이 달라진다.

flex-item과 flex-item*2와 flex-item*3의 크기가 각각 다르다.

 

방지하는 방법은 flex-grow와 flex-basis: 0;을 함께 사용하는 것.

 

flex-basis: 0; 과 width: 0; 은 비슷한 역할을 하지만,

반응형 구현할 때 불편하기 때문에 width: 0; 보단 flex-basis: 0;을 활용하는 것이 더 좋다.

 

 

 

https://codepen.io/hayeong0409/pen/abMVOrp?editors=1100

 

flex-grow비율 망가짐 방지(flex-basis)

...

codepen.io

 

 

 

 


 

구글 검색 정리

 

flex-grow

=> flex-container의 남은 여백을 채우기 위해 존재하는 속성

( 기본 값 : 0 )

 

 

 

 

위처럼 flex-container 자식 요소의 크기 총합이 부모보다 작아서 여백이 생길 경우,

별도로 flex-grow의 속성을 통해 남은 여백을 채워줄 수 있다.

 

 

box1에 flex-grow : 1;을 적용함

 

box1에 flex-grow 속성을 적용해주니, 위와 같이 box1의 너비를 늘려 남은 여백을 채워주는 것을 알 수 있다.

(나머지 여백은 padding)

기본값이 0인 box2와 box3의 경우 너비가 변화하지 않았다.

 

 

box1, box2, box3에 각각 flex-grow를 1, 10, 3 만큼을 주자,

 

 

각 박스들이 기존 너비에서 나머지 여백을 채우기 위해 1 : 10 : 3의 비율로 넓어진 것을 볼 수 있다.

 

flex-shrink

=> 내부 요소들을 flex-container 크기에 맞게 줄이기 위해 존재하는 속성.ㄴ

(기본 값 : 1 )

 

 

 

flex-shrink 는 flex-grow와는 반대의 속성이다.

위의 css코드의 경우 box1~3의 크기의 합이 120으로 부모의 너비인 80보다 큰 것을 알 수 있지만,

별도의 설정이 없으면 강제적으로 너비가 flex-container에 맞게 줄어드는데,

그 이유가 바로 이에 관여하는 요소인 flex-shrink 값이 기본값인 1로 설정되어 있기 때문이다.

 

 

box1~3 각각에 모두 flex-shrink : 0; 으로 설정함

 

 

flex-shrink의 값을 모두 0으로 설정해주니, 더이상 flex-shrink가 적용되지 않아서 최종 너비에 영향을 주지 않게 되었다.

결국 box3은 flex-container를 넘어 화면을 뜷고 나가게 되었다.

만약 box에 서로 다른 비율로 값을 설정해준다면, 그 비율대로 너비가 줄어들 것이다.

 

 

flex-basis

flex-item의 기본 크기를 설정하기 위해서 존재하는 속성

( 기본값 : auto )

 

기본 크기는 flex-direction 속성 값에 따라 다르다.

flex-direction이 row 일때는 너비, flex-direction이 column일때는 높이.

 

flex-basis : 0; 은 아이템의 기본 크기를 0이라고 설정하는 것과 같다.

-> content의 크기와 관계없이 flex-grow, flex-shrink 설정 비율대로 아이템 너비(높이)를 배분한다.

 

flex-grow는 아이템들의 flex-basis를 제외한 여백 부분을 flex-grow에 지정된 숫자의 비율로 나누어 가지는 속성이다.

그런데 flex-basis: 0; 으로 설정해서 아이템의 기본크기를 0으로 만들었기 때문에 여백이 100%인 상태라고 할 수 있다.

따라서 content의 크기와 관계없이 flex-grow 설정 비율대로 아이템 너비를 배분한다.

 

 

두 flex box의 아이템들 모두 flex-grow: 1; 인 상태이다.

각 item이 같은 너비를 가질 것이라고 오해하기 쉽지만,

flex-basis: 0; 인 경우에만 content의 너비가 달라도 같은 너비를 가진다.

 

flex-basis: auto; 인 위의 경우,

아이템의 기본 크기가 자신의 너비 또는 높이값으로 설정된다.

flex-grow: 1; 로 인해 세 아이템 모두 같은 여백을 나누어 가지지만,

각자 content의 width가 다르므로 item자체의 너비도 달라지는 것이다.

 

flex-basis: 0; 인 아래의 경우,

아이템의 기본 크기를 0이라고 설정했기 때문에 여백만 100%인 상태이다.

따라서 long box, middle box, short box 모두 같은 너비(높이)를 나누어 가진다.

 

 

 


 

vscode설치

구글에 vscode 검색

 

 

window or os 골라서 다운받기

 

전체 다 체크해준 후 다운받기

 

 

블럭 모양 누르고 검색창에 ko 검색 후 맨 위에 있는 한국어 버전 다운로드 받기

 

 

한글판 설치하고 나서 밑에 뜨는 버튼을 눌러 재실행

 

 

설정 누르기

 

 

 

font size와 tap size 설정 변경

 

 

설정 검색에서 hover 검색 후 호버 표시 여부 제어 체크표시 해제

 

 

테마 설정에서 색 테마 선택, monokai 흐릿한 으로 설정

 

 

바탕화면에 docs 파일 생성

 

 

docs 파일에서 보기 누르고 파일 확장명에 체크표시

 

 

docs 파일에 텍스트 문서 생성

이름 -> index.html

 

 

chrome 창으로 안나오면

컴퓨터 검색창에 기본 앱 검색

웹 브라우저를 chrome으로 변경

 

새파일 만들어서 style.css 로 이름 변경

 

 

html에 ! + tab 누르고

언어설정 ko로 변경

body태그 안에 div태그 생성 후 '텍스트' 입력

title 이름 vscode연습으로 변경

 

css에 div color red로 설정

 

html에 link+tab 후 style.css입력

 

 

docs폴더에 만든 html파일을 열어보면 저런 사이트가 열리고 빨간 글씨로 텍스트 라고 적혀있는 걸 확인할 수 있음

 


< vscode 단축키 >

환경설정 ctrl+ ,

탭닫기 ctrl+w

 

파일: 어떤 파일인지 구분하기 위해 확장자가 붙어있는 것들

폴더: 파일을 정리할 수 있는 것들

 

vscode에서는 처음에 폴더를 열고나서 파일을 만들어 사용해야한다.

 

[확장자]  .뒤에 붙는것들

.jpg

.html

.png

.exe

.css

.txt

.js

.zip

'웹1' 카테고리의 다른 글

웹1 (24.02.01)  (0) 2024.02.01
웹1 13일차(24.01.29)  (0) 2024.01.29
웹1 11일차 (24.01.25)  (0) 2024.01.25
웹1 10일차 (24.01.23)  (0) 2024.01.23
display: flex  (0) 2024.01.23