오늘은
Tailwind CSS
의Sizing
에 대해 알아보자 :)
기본 중 기본이라고 할 수 있는
Width
설정에 관한 클래스명을 다음 표에 간략히 정리해보았다
클래스명 | 내용 |
---|---|
w-0 | • width: 0px |
w-1 | • width: 0.25rem (4px) |
w-1.5 | • width: 0.375rem (6px) |
w-px | • width: 1px |
w-auto | • width: auto |
w-1/2 | • width: 50% |
w-1/4 | • width: 25% |
w-full | • width: 100% |
w-min | • width: min-content |
w-max | • width: max-content |
w-fit | • width: fit-content |
Width 공식 문서에 들어가면 아주 자세하게 클래스명들이 설명되어 있으니 참고하면 좋을 것 같다!
Width
에 대해 알아보는 김에Max-width
,Min-width
에 대해서도 알아보자
종류 | 문법 | 예 |
---|---|---|
Max-width | max -<width 클래스명> | max-w-1 |
Min-width | min -<width 클래스명> | min-w-0 |
앞서 알아보았던
Width
클래스명 앞에max-
,min-
만 붙여주면 된다!
그렇다면
Width
를 반응형 디자인과 Hover, Focus에 적용하고 싶을 땐 어떻게 하면 될까?
종류 | 문법 | 예 |
---|---|---|
BreakPoint | <적용할 BreakPoint>:<클래스명> | md:w-1/2 |
State | <적용할 State>:<클래스명> | focus:w-max |
위 표처럼 클래스명 앞에
BreakPoint
/State
+:
만 붙여주면 된다 👍
실제로
Tailwind CSS
를 실무에 사용할 때는 이미 지정되어 있는Value
외의 값도 필요하므로 클래스명에 사용되는Value
를 커스텀 할 수 있게 되어있다!
tailwind.config.js
파일에 커스텀 값 저장하기이 방법은 아래 순서대로 따라하면 된다
㉠ tailwind.config.js
파일 찾기
㉡ theme.extend
내부에 width
만들어 주기
㉢ theme.extend.width
에 내가 원하는 값 설정
: "value name" : "value"
이제 아래 코드처럼
w-17px
이라는 클래스명으로 사용할 수 있게 된다 👍
해당 방법은
tailwind.config.js
파일 내에 저장한 값이면 어느 곳에서든 전역적으로 사용 가능하다
두번째 방법은 첫번째 방법과 달리 전역적으로 사용할 필요 없는 값들을 커스터마이징 할 수 있는 방법으로
[] 대괄호
를 이용한다
w
-[주고자하는 width
]위와 같이 대괄호 하나로 손쉽게 커스텀해서 사용이 가능하다
Width
에 대해 알아봤으니 다음은Height
를 정리해보자
클래스명 | 내용 |
---|---|
h-0 | • height: 0px |
h-1 | • height: 0.25rem (4px) |
h-1.5 | • height: 0.375rem (6px) |
h-px | • height: 1px |
h-auto | • height: auto |
h-1/2 | • height: 50% |
h-1/4 | • height: 25% |
h-full | • height: 100% |
h-min | • height: min-content |
h-max | • height: max-content |
h-fit | • height: fit-content |
h-screen | • height: 100vh |
h-svh | • height: 100svh |
h-lvh | • height: 100lvh |
h-dvh | • height: 100dvh |
Height 공식 문서에 들어가면 더 많은 클래스명들이 설명되어 있으니 더 궁금한 게 있으면 참고할 것!
Height
를 알아보다보니vh
,svh
,lvh
,dvh
개념이 나오는데 각각이 뭐가 다른지 궁금했다.
vh
: 뷰포트 높이값의 1/100
을 의미하는 단위
100vh
: 뷰포트 전체 높이값
h-screen
의height : 100vh
는 기존에 많이 사용하던vh
개념이라 알고 있었지만 다음부터가 궁금했다
svh
: smallest vh
의 의미로 뷰포트의 최소값의 1/100
을 의미하는 단위
100svh
: 뷰포트의 최소 높이값
위의 영상을 보면 세로 스크롤 시 상단의 주소창이 사라져도 영역의 높이가 뷰포트의 최소 높이값으로 고정되어 있는 걸 볼 수 있다
lvh
: largest vh
의 의미로 뷰포트의 최대값의 1/100
을 의미하는 단위
100lvh
: 뷰포트의 최대 높이값
영상에서 보이듯이
h-lvh
의 영역은 뷰포트의 최대 높이값을 가지고 있어 스크롤 전에도 아래쪽에 높이를 가지고 있다
dvh
: dynamic vh
의 의미로 뷰포트의 동적인 높이값의 1/100
을 의미하는 단위
100dvh
: 뷰포트의 높이값 (동적)
동적인 뷰포트 높이값을 가지기 때문에 스크롤 시 상단의 주소창이 사라지면 주소창 높이만큼
h-dvh
영역 높이가 늘어나는 걸 볼 수 있다!
이렇게 한 번에 비교해보니 차이점을 쉽게 알 수 있었다 👍
Max-height
,Min-height
도 간단하다
종류 | 문법 | 예 |
---|---|---|
Max-height | max -<height 클래스명> | max-h-1 |
Min-height | min -<height 클래스명> | min-h-0 |
Height
클래스명 앞에max-
,min-
만 붙여주면 된다!
그렇다면
Height
를 반응형 디자인과 Hover, Focus에 적용하고 싶을 땐 어떻게 하면 될까?
종류 | 문법 | 예 |
---|---|---|
BreakPoint | <적용할 BreakPoint>:<클래스명> | md:h-1/4 |
State | <적용할 State>:<클래스명> | focus:h-full |
위 표처럼 클래스명 앞에
BreakPoint
/State
+:
만 붙여주면 된다 👍
Height
에 대한Value
커스터마이징도Width
의Value
커스터마이징과 같은 방법이다!
tailwind.config.js
파일에 커스텀 값 저장하기이 방법은 아래 순서대로 따라하면 된다
㉠ tailwind.config.js
파일 찾기
㉡ theme.extend
내부에 height
만들어 주기
㉢ theme.extend.height
에 내가 원하는 값 설정
: "value name" : "value"
이제 아래 코드처럼
h-200px
이라는 클래스명으로 사용할 수 있게 된다 👍
해당 방법은
tailwind.config.js
파일 내에 저장한 값이면 어느 곳에서든 전역적으로 사용 가능하다
두번째 방법은 첫번째 방법과 달리 전역적으로 사용할 필요 없는 값들을 커스터마이징 할 수 있는 방법으로
[] 대괄호
를 이용한다
h
-[주고자하는 height
]
CSS
를 사용해본 사람은 알겠지만 정사각형을 만들기 위해서는Width
,Height
를 각각 지정해주어야 한다.
하지만!
Tailwind CSS
에서는Size
라는 아이를 이용하여Width
와Height
를 한번에 같은 값으로 지정할 수 있다 😀
클래스명 | 내용 |
---|---|
size-0 | • width: 0px • height: 0px |
size-1 | • width: 0.25rem • height: 0.25rem |
size-1.5 | • width: 0.375rem • height: 0.375rem |
size-px | • width: 1px • height: 1px |
size-auto | • width: auto • height: auto |
size-1/2 | • width: 50% • height: 50% |
size-1/4 | • width: 25% • height: 25% |
size-full | • width: 100% • height: 100% |
size-min | • width: min-content • height: min-content |
size-max | • width: max-content • height: max-content |
size-fit | • width: fit-content • height: fit-content |
처음에는
Size
를 사용하면 무조건 정사각형이 나오겠구나 생각했었는데 그게 아니었다 😭
Width
,Height
값이 고정으로 지정되는 클래스가 아니면 정사각형이 나오지 않는 경우가 많다!
위의 경우처럼 너비, 높이가 고정값으로 적용되는 클래스는 아무 문제 없이 정사각형이 잘 나온다!
그렇다면
Width
,Height
값이25%
로 지정되는size-1/4
로 코드를 짜보자
위 결과를 보면 알 수 있듯이 자식 요소가 부모 요소의
25%
의Width
를 가지게 되었다.
그러나div
특성상Height
가auto
이므로 부모 요소의Height
를 따로 설정해 주지 않는 이상Height: 25%
는 적용되지 않아 정사각형이 나오지 않는다!
🧐 그렇다면%
로 값이 적용되는 클래스를 사용하며 정사각형을 만들 순 없을까??
🧐 아래 코드를 보자
위 코드처럼 부모 요소에 너비와 높이에 값을 주면
Size-1/4
를 사용하고도 정사각형을 만들어 낼 수 있다 :)
Width
,Height
처럼 클래스명 앞에BreakPoint
/State
+:
만 붙여주면 된다 👍
종류 | 문법 | 예 |
---|---|---|
BreakPoint | <적용할 BreakPoint>:<클래스명> | md:size-full |
State | <적용할 State>:<클래스명> | focus:size-full |
Size
에 대한Value
커스터마이징도Width
의Value
커스터마이징과 같은 방법이다!
tailwind.config.js
파일에 커스텀 값 저장하기이 방법은 아래 순서대로 따라하면 된다
㉠ tailwind.config.js
파일 찾기
㉡ theme.extend
내부에 size
만들어 주기
㉢ theme.extend.size
에 내가 원하는 값 설정
: "value name" : "value"
이제 아래 코드처럼
size-200px
이라는 클래스명으로 사용할 수 있게 된다 👍
해당 방법은
tailwind.config.js
파일 내에 저장한 값이면 어느 곳에서든 전역적으로 사용 가능하다
두번째 방법은 첫번째 방법과 달리 전역적으로 사용할 필요 없는 값들을 커스터마이징 할 수 있는 방법으로
[] 대괄호
를 이용한다
size
-[주고자하는 size 값
]Height
를 알아보며 이번 기회에 여러 vh
종류를 알아보고 정리해 보는 기회를 가질 수 있어 좋았다.
막상 정리해보고 나니 별 거 아니었지만 서로의 차이점을 확실히 알게 됐다 :)
실무에서 각 차이점을 유의해서 잘 구분하여 적재적소에 사용할 수 있을 수 있을 것 같다.
그리고 Size
를 알게 된 것도 굉장히 흥미로웠다.
처음 딱 봤을 땐 "아 정사각형 만드는 거구나!" 했지만
막상 써보니 "꼭 정사각형이 아닌 곳에도 사용해서 효율적인 코드 작성에 도움이 될 수 있게 할 수도 있군!" 이라는 생각이 들었다.
이것도 유용하게 많이 쓸 수 있을 것 같다는 생각이 든다!
역시 왜 인기가 있는지 알 수 있군 😎