top·right·bottom·left를 한 번에 지정하는 단축 속성. inset: 0은 네 방향을 모두 0으로 둔다. Tailwind의 inset-0·inset-auto 클래스가 이 속성이다.
position: absolute나fixed요소에inset: 0을 주면 네 변이 기준 상자(absolute는 가장 가까운 positioned 조상, fixed는 뷰포트(Viewport))에 붙어서width·height없이도 꽉 찬다. 전체 화면 오버레이를 만들 때 쓴다inset: auto는 기본값으로 돌린다. 늘어나는 효과가 사라지므로 크기는 콘텐츠로만 정해진다inset: 0에 크기 제한과margin: auto를 더하면 가운데 정렬이 된다 → CSS 가운데 정렬
반응형에서 함정
모바일에서는 전체 화면, 데스크톱에서는 가운데 뜨는 상자로 바꾸는 다이얼로그에서 자주 걸린다.
.dialog { position: fixed; inset: 0; } /* 모바일: 꽉 참 */
@media (min-width: 640px) {
.dialog {
inset: auto; /* 늘어남 해제 */
top: 50%; left: 50%; transform: translate(-50%, -50%);
width: 100%; max-width: 48rem; /* 이게 없으면 콘텐츠 크기로 쪼그라든다 */
}
}inset: auto로 바꾸는 순간 요소를 늘려 주던 힘이 사라지므로, 너비를 직접 주지 않으면 내용만큼 좁아진다. width: 100%로 잡고 max-width로 상한을 두는 식으로 푼다.
참고: MDN — inset