SASS에서 @media 지시어
SASS에서 @media 지시어는 CSS의 해당 규칙과
동일하게 적용됩니다. 또한 CSS의 모든 규칙 안에 직접
중첩시킬 수 있습니다.
한 가지 주목할 점은 @media 지시어를 CSS 규칙 안에
중첩시킬 경우, 컴파일 후에는 스타일시트 상단으로 올라가고,
지시어가 위치했던 선택자들은 @media 안으로 이동한다는
것입니다.
이를 통해 선택자를 반복하지 않거나 스타일시트의 흐름을
깨지 않고도 @media 지시어에 규칙을 추가할 수
있습니다.
다음 예제를 살펴보겠습니다:
.navbar {
width: 400px;
@media picture and (orientation: portrait) {
width: 300px;
height: auto;
}
}
이제 컴파일 결과를 확인해 봅시다:
.navbar {
width: 400px;
}
@media picture and (orientation: portrait) {
.navbar {
width: 300px;
height: auto;
}
}
@media 쿼리를 서로 중첩시킬 수도 있으며, 컴파일 후에는
and 연산자로 연결됩니다:
@media div {
.picture {
@media (orientation: portrait) {
width: 200px;
}
}
}
컴파일 후에는 다음과 같이 표시됩니다:
@media div and (orientation: portrait) {
.picture {
width: 200px;
}
}
@media 지시어의 또 다른 특징은 변수, 함수 및
연산자를 전달하는 데 사용할 수 있다는 것입니다:
$media: style;
$feature: -webkit-max-device;
$value: 3.0;
@media #{$media} and ($feature: $value) {
div {
color: red;
}
}
style.css 파일에서 우리는 다음과 같은 코드를 얻습니다:
@media style and (-webkit-max-device: 3) {
div {
color: red;
}
}
다음 코드의 컴파일 결과는 어떻게 될지 설명해 보세요:
.active-link {
color: blue;
@media content {
font-size: 14px;
text-decoration: underline;
}
}
다음 코드의 컴파일 결과는 어떻게 될지 설명해 보세요:
@media p {
#product-card {
@media (font-family: Arial) {
font-size: 12px;
}
}
#product-card-title {
@media (font-family: Arial) {
font-size: 14px;
font-weight: bold;
}
}
}
다음 코드의 컴파일 결과는 어떻게 될지 설명해 보세요:
$var: link;
$font: font-size;
$size: 10px;
@media #{$var} and ($font: $size) {
.block {
color: red;
}
}