2016-10-04 62 views
0

我试图找出在sass中编写媒体查询的方法。这是我的代码如何在sass中编写媒体查询?

devices: ("sphone","phone","tablet") 
 
$breakpoints: (\t width2: ('sphone' : 320, 'phone' : 360, 'tablet' : 600), height2: ('sphone' : 509, 'phone' : 583, 'tablet' : 952)) 
 

 
=screen-width($device) 
 
    @each $name in $devices 
 
    @if $device != $name 
 
     @error "No device of such name" 
 
    $media: (max-width: map-get(map-get($breakpoints,"width2"),$device) + px) 
 
    @media screen only and ($media) 
 
    @content 
 
\t \t 
 
\t \t 
 
.hello 
 
    background: #333 
 
    @include screen-width("mobile") 
 
    background: #444 
 

我试图编译青菜一样的,但它一直就扔我下面的错误。我不知道为什么。

Properties are only allowed within rules, directives, mixin includes, or other properties. 

任何见解?

回答

0

您在代码中存在一些错误,在$devices变量中缺少$。你写@include screen-width("mobile")但手机不在设备列表中。在$media变量max-width必须是一个字符串,然后您必须使用插值添加@media规则。

@each循环中的比较是错误的,但我暂时没有解决这个问题。此代码有效:

$devices: ("sphone","phone","tablet") 
$breakpoints: (width2: ('sphone' : 320, 'phone' : 360, 'tablet' : 600), height2: ('sphone' : 509, 'phone' : 583, 'tablet' : 952)) 

=screen-width($device) 
    $media: "max-width:" map-get(map-get($breakpoints,"width2"),$device) + px 
    @media screen only and (#{$media}) 
    @content 

.hello 
    background: #333 
    @include screen-width("sphone") 
    background: #444 
+0

是的!这工作。谢谢 :) –