发表于: 2019-01-11 23:24:09

1 667


今天完成的事情:

完成了栅格系统,使用了@for和@each。

使用@each遍历$grid-prefix-list列表,并返回3个值,$grid-prefix插入到类名中,$son-width插入到媒体查询中,$con-width插入到.container的为width的值,

同时使用@for循环1-12,得到的$i同时插入到.col#{$grid-prefix}-#{$i}类命中和width的值中,这里做了一个运算,width: (100 / 12) * $i + %; 100/12得到一格的宽度,然后随着for循环,得到$i的值为1-12,两者相乘得到总宽度,使用+字符串运算给值加上%单位。

$grid-prefix-list: (-sm 576px 540px) (-md 768px 720px) (-lg 992px 960px) (-xl 1200px 1140px);

@each $grid-prefix,$son-width,$con-width in $grid-prefix-list {
         @media only screen and (min-width$son-width) {
                   .container {
                        width$con-width
                    } 

                    @for $i from 1 through 12 {

                         .col#{$grid-prefix}-#{$i} {
                               width: (100 / 12) * $i + %;
                         }
                    }
           }
}

下面是运行得到的结果:

@media only screen and (min-width576px) {
.container {
width540px;
}
.col-sm-1 {
width8.33333%;
}
.col-sm-2 {
width16.66667%;
}
.col-sm-3 {
width25%;
}
.col-sm-4 {
width33.33333%;
}
.col-sm-5 {
width41.66667%;
}
.col-sm-6 {
width50%;
}
.col-sm-7 {
width58.33333%;
}
.col-sm-8 {
width66.66667%;
}
.col-sm-9 {
width75%;
}
.col-sm-10 {
width83.33333%;
}
.col-sm-11 {
width91.66667%;
}
.col-sm-12 {
width100%;
}
}

@media only screen and (min-width768px) {
.container {
width720px;
}
.col-md-1 {
width8.33333%;
}
.col-md-2 {
width16.66667%;
}
.col-md-3 {
width25%;
}
.col-md-4 {
width33.33333%;
}
.col-md-5 {
width41.66667%;
}
.col-md-6 {
width50%;
}
.col-md-7 {
width58.33333%;
}
.col-md-8 {
width66.66667%;
}
.col-md-9 {
width75%;
}
.col-md-10 {
width83.33333%;
}
.col-md-11 {
width91.66667%;
}
.col-md-12 {
width100%;
}
}

@media only screen and (min-width992px) {
.container {
width960px;
}
.col-lg-1 {
width8.33333%;
}
.col-lg-2 {
width16.66667%;
}
.col-lg-3 {
width25%;
}
.col-lg-4 {
width33.33333%;
}
.col-lg-5 {
width41.66667%;
}
.col-lg-6 {
width50%;
}
.col-lg-7 {
width58.33333%;
}
.col-lg-8 {
width66.66667%;
}
.col-lg-9 {
width75%;
}
.col-lg-10 {
width83.33333%;
}
.col-lg-11 {
width91.66667%;
}
.col-lg-12 {
width100%;
}
}

@media only screen and (min-width1200px) {
.container {
width1140px;
}
.col-xl-1 {
width8.33333%;
}
.col-xl-2 {
width16.66667%;
}
.col-xl-3 {
width25%;
}
.col-xl-4 {
width33.33333%;
}
.col-xl-5 {
width41.66667%;
}
.col-xl-6 {
width50%;
}
.col-xl-7 {
width58.33333%;
}
.col-xl-8 {
width66.66667%;
}
.col-xl-9 {
width75%;
}
.col-xl-10 {
width83.33333%;
}
.col-xl-11 {
width91.66667%;
}
.col-xl-12 {
width100%;
}
}

@each每遍历一个列表值,@for会循环一次1-12。

这里面的核心是$grid-prefix-list这个变量,这个变量对应了多个值,而且是有组织的,相当于数组里面还有数组,sass的列表值大致有三种形式分隔,分别为空格,逗号和小括号。空格比较常见,这里的$grid-prefix-list使用了两种分隔,分别为空格和小括号,@each循环先得到用小括号分隔的,然后在@each里面通过

$grid-prefix,$son-width,$con-width三个变量取得小括号里面用空格分开的列表值。

明天计划的事情:

完成任务14的导航栏和轮播图。


遇到的困难:

暂无


收获:

学会了SASS列表值的使用,并用@each遍历整个列表,同时搭配for循环使用。



返回列表 返回列表
评论

    分享到