Ff7afae5b23125e25e18ad8c0404bd78

SCSS 對於 & 的判定

2012-05-02 17:24:36 +0800hechianSASS 節點 中發起
最後由 hechian2012-05-09 10:40:02 +0800回應 , 226次閱讀

各位好,我現在有一個很有趣(個人認為)的小問題想請教大家

我也就不囉嗦,直接给各位看code

#select_box_year, #select_box_month{
  width:  if(& == "#select_box_year", 80px, 90px);
}

我想要做到類似的事情,也就是說當我判斷到是select_box_year的時候,回傳80px,否則就是90px,能這樣做嗎?

截至 2012-05-09 10:40:02 +0800,共收到 2 條回應
36b1f565fc83d9b67588123f2171b896
chitsaou 1樓, 於2012-05-03 01:56:12 +0800回應

Sass 有 @if directive :http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#id10

我爬了一下不知道怎麼把 & 給展開為字串並用 interpolate 的方式放進去(#{&} 會得到 syntax error),可以的話就能透過字串比較了。

但我有個疑問:& 指的是當前的 context ,那如果這個 block 不是在最頂層, & 還會等於 #select-box_year#select_box_month 嗎?

是我的話會直接寫兩條 rule ,或是兩個都用同樣的 class ,預設寫 width: 80px ,再另外定義 #select_box_month 的 width 是 90px ,用較高的 specificity 去蓋他。

Ff7afae5b23125e25e18ad8c0404bd78
hechian 2樓, 於2012-05-09 10:40:02 +0800回應

哈,感謝回應
對啊,其實我就是想要用 & 去展開為字串用@if比對,可惜這招沒用
看來也只能這樣做了 ... 實在是不太想另外寫一個#select_box_month

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊