반응형
기본 원칙
1. 이미지 크기 유연하게 설정
- 이미지는 크기(px)로 고정하지 않고, 부모 요소 크기에 따라 유동적으로 변하도록 설정해야 함
- 대표적으로 max-width: 100%; height: auto; 조합을 사용하여
이미지가 부모 컨테이너 너비를 넘지 않고, 비율(가로/세로 비율)을 유지하며 크기가 조절됨
2. 비율 유지
- 이미지는 가로 세로 비율을 깨지 않도록 해야 함
- height: auto로 가로 크기에 맞춰 세로를 자동 조절하거나
width: auto로 세로 기준 가로를 자동 조절 - 임의로 고정 크기(width: 100px; height: 100px;)를 주면 이미지가 찌그러질 수 있음
3. 적절한 이미지 해상도 제공
- 디바이스 해상도가 다르기 때문에 동일 이미지라도 해상도별 적절한 이미지를 준비
- 모바일 화면, 일반 데스크톱 화면, 레티나 같은 고해상도 화면 등 각각에 최적화된 이미지 제공이 필요
- 이를 통해 불필요하게 큰 이미지를 모바일에서 다운받는 비효율을 줄임
CSS에서 반응형 이미지 구현
유연한 이미지 크기 지정
img {
max-width: 100%; /* 부모 너비에 맞게 최대 크기 제한 */
height: auto; /* 비율 유지하며 세로 크기 자동 조절 */
display: block; /* 이미지 아래 여백 제거 */
}
- display: block은 이미지가 인라인 요소일 때 생기는 아래 여백(줄간격)을 제거함
- max-width 대신 width: 100%를 쓰면 부모 너비에 무조건 맞춰 늘어나거나 줄어든다.
미디어 쿼리로 이미지 크기 조절
- 특정 화면 크기에 따라 이미지 크기를 다르게 지정할 수 있음
- 필요에 따라 여러 구간으로 나누어 유연하게 조절 가능
/* 모바일에서는 화면 너비 전체를 사용하고, 데스크톱에서는 절반 크기로 설정하는 예시 */
@media (max-width: 600px) {
img.responsive {
width: 100%;
}
}
@media (min-width: 601px) {
img.responsive {
width: 50%;
}
}
object-fit으로 이미지 비율과 잘림 제어
- 이미지 크기를 지정한 박스 내에서 비율 유지하며 잘릴지, 늘릴지 결정 가능
- 주로 고정 크기 박스 안에서 이미지 배치를 컨트롤할 때 사용
[CSS] object-fit
object-fit정의 : 이미지, 비디오 등 박스(container) 안에 들어가는 콘텐츠의 크기 조절 및 배치 방식을 정의하는 속성주로 , , 같은 요소에 적용해서, 콘텐츠가 컨테이너 크기에 맞게 어떻게 맞춰질지
u-pub.tistory.com
배경 이미지 반응형 처리 (CSS 배경 이미지)
- <img> 요소가 아닌 CSS background-image는 HTML 속성으로는 반응형 처리 불가
- 대신 미디어 쿼리로 배경 이미지를 다르게 지정하거나, background-size를 조절
- 모바일에서는 작은 이미지를 로드해 데이터 절약
.hero {
background-image: url('large.jpg');
background-size: cover;
background-position: center;
}
@media (max-width: 768px) {
.hero {
background-image: url('small.jpg');
}
}
HTML과 CSS가 결합된 반응형 이미지 처리: srcset + sizes
- CSS만으로는 해상도별 최적 이미지 선택을 할 수 없고, HTML 속성 srcset과 sizes을 활용하여 반응형 이미지 구현
[Responsive] 반응형 이미지 작업 / img 태그 속성(srcset, sizes, picture)
srcset 속성여러 크기 혹은 해상도의 이미지를 한 곳에 모아둔 것브라우저가 자신의 화면 환경에 가장 적합한 이미지를 골라서 다운로드함ex) 480w, 800w, 1200w)는 이미지 각각의 너비(픽셀 단위)를 뜻
u-pub.tistory.com
반응형
'Responsive > CSS' 카테고리의 다른 글
[MediaQuery] 기능 쿼리 (supports) (0) | 2023.01.30 |
---|