亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

章節
問答
課簽
筆記
評論
占位
占位

Sass Maps的函數-map-keys($map)

map-keys($map) 函數將會返回 $map 中的所有 key。這些值賦予給一個變量,那他就是一個列表。如:

map-keys($social-colors);

其返回的值為:

"dribble","facebook","github","google","twitter"

換句話說:

$list: map-keys($social-colors);

相當于:

$list:"dribble","facebook","github","google","twitter";

這個時候,就可以配合 Sass 的 list 做很多事情。

上面的示例,可以做通過 map-keys($map) 來做一個修改:

@function colors($color){
    $names: map-keys($social-colors);
    @if not index($names,$color){
        @warn "Waring: `#{$color} is not a valid color name.`";
    }
    @return map-get($social-colors,$color);
}

上面代碼中最不同之處,我們使 用map-key s將 $social-colors 這個 map 的所有 key 取出,并賦予給一個名 為 $names 的列表。然后通過 index($names,$color) 返回 $color 在 $names 位置,如果這個位置不存在,將返回提示信息,如果存在將返回正確的值。

.btn-weibo{
    color: colors(weibo);
}

例如,weibo 不在 $social-color s中,那么不會編譯出 CSS,而且在命令終端同樣會有提示信息:

WARNING: Waring: `weibo is not a valid color name.`
         on line 27 of test.scss

同樣,也可以通過 @each 或者 @for 遍歷出所有值:

@each:

@each $name in map-keys($social-colors){
    .btn-#{$name}{
        color: colors($name);
    }
}

@for:

@for $i from 1 through length(map-keys($social-colors)){
    .btn-#{nth(map-keys($social-colors),$i)} {
        color: colors(nth(map-keys($social-colors),$i));
    }
}

雖然使用的方法不一樣,但最終得到的 CSS 是一樣的:

.btn-dribble {
  color: #ea4c89;
}

.btn-facebook {
  color: #3b5998;
}

.btn-github {
  color: #171515;
}

.btn-google {
  color: #db4437;
}

.btn-twitter {
  color: #55acee;
}

 

任務

小伙伴們可在右側代碼編輯器中試試本小節中所講的代碼。

?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態

舉報

0/150
提交
取消
全部 精華 我要發布
全部 我要發布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?