
오늘은 CSS의 몇 가지 팁을 공유하려고 합니다.
.container {
padding: 5em;
}
@media(max-width: 700px) {
.container {
padding: 2em;
}
}
.container {
padding: min(5em, 8%);
}
이는 화면 크기에 따라 패딩을 자동으로 조절해 줌
min() 함수는 두 값 중 작은 값을 선택하여 패딩으로 사용.
따라서, 화면이 작아질수록 % 단위가 더 작아질 가능성이 높고, 그 반대의 경우에는 em 단위가 더 작아질 수 있음
이러한 방식으로 상대 패딩은 화면 크기에 따라 유연하게 조절됨
font-size: 10vw; 그러나 너무 큰 화면에서는 글씨가 너무 커질 수 있고, 작은 화면에서는 글씨가 너무 작아질 수 있다는 문제가 있음font-size: clamp(1.8rem, 10vw, 5rem);줌 기능과 함께 사용하려면 calc 함수를 활용할 수 있음
font-size: clamp(1.8rem, calc(7vw + 1rem), 5rem);
img {
max-width: 100%;
} 그러나 화면 크기에 따라 이미지의 비율이 깨질 수 있다는 문제이렇게 만들면 이미지가 깨지지 않고 비율에 맞춰 그려질 수 있음
img {
max-width: 100%;
height : auto;
}
그러나 CLS문제와 각 요소별 이미지의 크기가 달라진다는 문제가 발생
이미지 비율이 깨질 경우를 대비해 object-fit 속성을 활용
img {
max-width: 100%;
height: auto;
aspect-ratio: 16/9; */* 가로로 긴 직사각형 */*
object-fit: contain; */* 이미지 비율 유지 */*
}
.element {
height: 100vh;
padding: 2em;
background: red;
color: white;
border: 15px solid blue;
}.element {
height: 100dvh;
padding: 2em;
background: red;
color: white;
border: 15px solid blue;
}nav {
display: none;
}
nav.show {
display: block;
}nav {
opacity: 0;
pointer-events: none;
}
nav.show {
opacity: 1;
pointer-events: all;
}해당 요소와 그 하위 요소들은 상호작용을 받지 않게 됨
nav {
inert: true;
}
nav.show {
inert: false;
}