Директива @media в SASS
В 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;
}
}