⭐ 이번 시간에는 viewport가 아닌 특정 요소의 크기에 따라 스타일링을 할 수 있는
container
쿼리에 대해 알아보았다! 포스팅 시점에는 호환 가능한 브라우저가 제한적이며 완성된 것이 아니므로 사용시에는 caniuse와 MDN 문서, CSS 초안을 체크하자 🙂 (만약 쿼리를 사용하고 싶다면, polyfill을 사용하자)
1. container query?
1) container 쿼리란?
container
쿼리는 viewport기준이 아닌, 특정 요소의 크기에 따라 반응적으로 스타일링이 가능하다.container
쿼리를 사용하기 위해선container-name
,container-type
지정이 필요하다.
2) container 쿼리 사용하기
(1) container-type
container-type
을 사용해 특정 요소를 쿼리 컨테이너로 지정할 수 있다.- 자식요소는 쿼리 컨테이너의 사이즈에 따라 반응적으로 스타일링할 수 있다.
container-type
에는size
,inline-size
등이 존재한다.
(2) container-name
- 쿼리 컨테이너의 이름을 지정한다.
- 지정된 이름은
@container container-name
형식으로 쓰인다.
.parent {
container-type: inline-size;
container-name: parent; /* 쿼리 컨테이너 이름 지정 */
}
@container parent (min-width: 300px) { /* 쿼리 컨테이너 이름 사용 */
.child {
/* styling */
}
}
(3) 예시 보기
- 아래 예시에서는 컨테이너 요소의 너비에 따라 배경색이 변한다.
See the Pen Untitled by KumJungMin (@kumjungmin) on CodePen.
- 두 번째는 요소의 너비에 따라 컨텐츠의 배열이 바뀌는 예시이다.
See the Pen CSS Container Queries Demo (+ polyfill) by KumJungMin (@kumjungmin) on CodePen.
앞서 설명했듯이
container query
는 (포스팅시점) 브라우저 제한, 기능 미완성 단계이므로 만약 요소의 크기가 변할 때 내부 컨텐츠의 배열을 바꾸고 싶다면display: grid
를 대체로 쓸 수도 있다!
반응형
'개발 기술 > 사소하지만 놓치기 쉬운 개발 지식' 카테고리의 다른 글
[SASS/SCSS] hex, rgb 컬러에 투명도 주는 방법 (0) | 2022.07.23 |
---|---|
[CSS/JS] vh 버그 해결방법(dvh 사용법, js 계산법) (0) | 2022.07.17 |
array object를 그룹화하는 방법(reduce(), groupBy()) (0) | 2022.06.19 |
[CSS] PC와 Mobile을 구분하는 2가지 방법 (0) | 2022.06.15 |
[JS] array, object에 조건부로 값을 추가하는 간단한 방법(with. &&, spread 연산자) (0) | 2022.06.11 |
댓글