반응형 웹사이트?
반응형 웹사이트란 한 가지의 웹사이트로 다양한 종류의 화면 크기에 최적화된 화면을 보여주는 것을 뜻합니다. 반응형 웹은 브라우저의 크기(스크린의 크기, 디바이스의 종류)에 실시간으로 반응하여 크기에 따라 레이아웃이 변합니다.
반응형 웹사이트에 필요한 CSS 속성들
Viewport 단위
-
vw (viewport width)
: 브라우저의 넓이를 기준으로 하는 백분율 단위1vw = 뷰포트(브라우저) 너비의 1%
-
vh (viewport height)
: 브라우저의 높이를 기준으로 하는 백분율 단위1vh = 뷰포트(브라우저) 높이의 1%
-
vmin (viewport minimum)
: 브라우저의 넓이와 높이 중 작은 값을 기준으로 하는 백분율 단위
-
vmax (viewport maximum)
: 브라우저의 넓이와 높이 중 큰 값을 기준으로 하는 백분율 단위
상대적 단위
-
%
부모 요소의 크기를 기준으로 하는 백분율 단위
-
폰트 크기 설정
body { font-size: 100%; /* 16px (기본값) */ } h1 { font-size: 150%; /* 24px (16px의 150%) */ } p { font-size: 50%; /* 8px (16px의 50%) */ }
-
넓이, 높이 설정
/* 부모 요소의 크기 설정 */ .container { width: 70%; /* 부모 요소의 너비의 70% */ height: 400px; /* 고정된 높이 */ } /* 자식 요소의 크기 설정 */ .container > .content { width: 50%; /* 부모 요소의 너비의 50% */ height: 50%; /* 부모 요소의 높이의 50% = 200px (400px의 50%) */ }
-
-
em
부모 요소의 폰트 사이즈를 기준으로 하는 상대적인 단위
1em = 부모 요소의 폰트 사이즈
/* 부모 요소의 폰트 크기를 16px로 설정 */ .parent { font-size: 16px; } /* 자식 요소의 폰트 크기 */ .child { font-size: 2em; /* 부모의 폰트 크기의 2배, 즉 32px */ }
/* * em을 중첩해서 사용하는 경우 * 최상위 요소의 폰트 크기를 16px로 설정 */ .box { font-size: 16px; } /* box 자식 요소의 폰트 크기 */ .box-inner { font-size: 1.5em; /* 16px의 1.5배 = 24px */ } /* box-inner 자식 요소의 폰트 크기 */ .box-inner-inner { font-size: 2em; /* box-inner 폰트 크기의 2배 = 48px */ }
-
rem
루트 요소(
html
)의 폰트 크기를 기준으로 상대적인 크기를 설정하는 단위1rem = html 요소의 폰트 사이즈
html { font-size: 16px; } body { font-size: 2rem; /* 루트 요소(html) 폰트 크기의 2배, 32px */ }
미디어 쿼리
미디어 쿼리는 웹 디자인에서 다양한 화면 크기와 장치 특성에 따라 스타일을 조정할 수 있는 CSS 기능입니다. 이를 통해 다양한 디바이스(모바일, 태블릿, 데스크톱 등)에서 최적화된 화면을 보여 줄 수 있습니다.
/* 기본 사용법 */
@media (조건) {
/* 조건이 만족될 때 적용될 스타일 */
}
-
max-width / min-width
@media (max-width: 480px) { /* 화면 너비가 480px 이하일 때 적용되는 스타일 */ } @media (min-width: 768px) { /* 화면 너비가 768px 이상일 때 적용되는 스타일 */ }
브라우저의 사이즈 변경에 대응하는 반응형 스타일
html {
font-size: 62.5%; /* font-size: 10px (브라우저 폰트 사이즈 16px * 0.625 = 10px) */
}
body {
font-size: 1rem; /* font-size: 10px */
}
@media (max-width: 1200px) {
html {
font-size: 50%; /* font-size: 8px (브라우저 폰트 사이즈 16px * 0.5 = 8px) */
}
}
@media (max-width: 768px) {
html {
font-size: 40%; /* font-size: 6.4px (브라우저 폰트 사이즈 16px * 0.4 = 6.4px) */
}
}
'개발 공부 일지 > CSS' 카테고리의 다른 글
[CSS] CSS-in-CSS vs CSS-in-JS (5) | 2024.11.28 |
---|---|
Position 속성의 퍼포먼스 이슈 (3) | 2024.09.09 |
CSS 적용 방법 및 Cascading의 원리 (0) | 2024.09.09 |
Cascading (0) | 2024.09.09 |