为什么我的 sass mixins 无法工作
Why my sass mixins fails to work
我制作了一个 sass mixin 来执行媒体查询,但我无法在我的项目中使用它。即使我输入 'display:none;'
,它仍然显示,这意味着我编码的媒体查询不起作用。我错过了什么吗?
实际上当我将 @mixin mq($media)
更改为
@media only screen and (min-width: 0) and (max-width: 200px)
,它确实按预期工作了。
此外,我还更改了 $wide-desktop:em-calc(1500);到 $wide-desktop:1500,它仍然没有按预期工作。
提前致谢。
我的代码如下:
$s:em-calc(380);
$ls:em-calc(492);
$tablet:em-calc(584);
$wide-tablet:em-calc(961);
$desktop:em-calc(1025);
$wide-desktop:em-calc(1500);
$tabletUp: em-calc(900);
@mixin mq($media) {
@if $media == s {
@media only screen and (min-width: $s) and (max-width: $ls - 1) { @content; }
}
@else if $media == ls {
@media only screen and (min-width: $ls) and (max-width: $tablet - 1) { @content; }
}
@else if $media == tablet {
@media only screen and (min-width: $tablet) and (max-width: $wide-tablet - 1) { @content; }
}
@else if $media == wide-tablet {
@media only screen and (min-width: $wide-tablet) and (max-width: $desktop - 1) { @content; }
}
@else if $media == desktop {
@media only screen and (min-width: $desktop) and (max-width: $wide-desktop - 1) { @content; }
}
@else if $media == wide-desktop {
@media only screen and (min-width: $wide-desktop) { @content; }
}
@else if $media == tabletUp {
@media only screen and (min-width: 0) and (max-width: $wide-desktop - 1) { @content; }
}
}
@include mq(s){
#header2{
height:95%!important;
#innerTop{margin-top:15%;display:none;}
}
.center section#move{height:5%!important;}
div.center{
top:95%!important;
}
#innerTop{
margin-top:22%!important;
h1{
font-weight: 800;font-family:sans-serif;font-size: 3.4em!important;line-height: 63px;margin-top: 0;margin-left:0.5em;
margin-bottom: 20px;color: white;max-width:70%;line-height:1.2em;
span.h11{display:none;font-size:0.5em;}
}
p{
font-size:1.1em;margin-left:1.5em;max-width:80%;margin-top:2em;margin-bottom:-1em; color:#e3e3e3;
}
}
}
问题与缺少的 em-calc
函数有关,它生成了这样的媒体查询
@media only screen and (min-width: em-calc(380)) and (max-width: em-calc(492) (-1))
确保该函数存在,或直接使用em
值(基于16px基本字体大小)
$s: 23.750em;
...
我制作了一个 sass mixin 来执行媒体查询,但我无法在我的项目中使用它。即使我输入 'display:none;'
,它仍然显示,这意味着我编码的媒体查询不起作用。我错过了什么吗?
实际上当我将 @mixin mq($media)
更改为
@media only screen and (min-width: 0) and (max-width: 200px)
,它确实按预期工作了。
此外,我还更改了 $wide-desktop:em-calc(1500);到 $wide-desktop:1500,它仍然没有按预期工作。
提前致谢。
我的代码如下:
$s:em-calc(380);
$ls:em-calc(492);
$tablet:em-calc(584);
$wide-tablet:em-calc(961);
$desktop:em-calc(1025);
$wide-desktop:em-calc(1500);
$tabletUp: em-calc(900);
@mixin mq($media) {
@if $media == s {
@media only screen and (min-width: $s) and (max-width: $ls - 1) { @content; }
}
@else if $media == ls {
@media only screen and (min-width: $ls) and (max-width: $tablet - 1) { @content; }
}
@else if $media == tablet {
@media only screen and (min-width: $tablet) and (max-width: $wide-tablet - 1) { @content; }
}
@else if $media == wide-tablet {
@media only screen and (min-width: $wide-tablet) and (max-width: $desktop - 1) { @content; }
}
@else if $media == desktop {
@media only screen and (min-width: $desktop) and (max-width: $wide-desktop - 1) { @content; }
}
@else if $media == wide-desktop {
@media only screen and (min-width: $wide-desktop) { @content; }
}
@else if $media == tabletUp {
@media only screen and (min-width: 0) and (max-width: $wide-desktop - 1) { @content; }
}
}
@include mq(s){
#header2{
height:95%!important;
#innerTop{margin-top:15%;display:none;}
}
.center section#move{height:5%!important;}
div.center{
top:95%!important;
}
#innerTop{
margin-top:22%!important;
h1{
font-weight: 800;font-family:sans-serif;font-size: 3.4em!important;line-height: 63px;margin-top: 0;margin-left:0.5em;
margin-bottom: 20px;color: white;max-width:70%;line-height:1.2em;
span.h11{display:none;font-size:0.5em;}
}
p{
font-size:1.1em;margin-left:1.5em;max-width:80%;margin-top:2em;margin-bottom:-1em; color:#e3e3e3;
}
}
}
问题与缺少的 em-calc
函数有关,它生成了这样的媒体查询
@media only screen and (min-width: em-calc(380)) and (max-width: em-calc(492) (-1))
确保该函数存在,或直接使用em
值(基于16px基本字体大小)
$s: 23.750em;
...