Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8944

CSS(SCSS) @forを使ったインクリメント文でゼロパディングした連番の出し方

$
0
0

SCSSで@forをインクリメントして連番の記述をする時に

01〜10をインクリメントしたい場合下記のように

if文をネストすることで連番として出力できます。

実現したいこと

下記のような連番を@forでインクリメントしたい

CSS
.con1{background-image:url(../img/index-main_1.jpeg);}.con2{background-image:url(../img/index-main_2.jpeg);}.con3{background-image:url(../img/index-main_3.jpeg);}.con4{background-image:url(../img/index-main_4.jpeg);}.con5{background-image:url(../img/index-main_5.jpeg);}.con6{background-image:url(../img/index-main_6.jpeg);}.con7{background-image:url(../img/index-main_7.jpeg);}.con8{background-image:url(../img/index-main_8.jpeg);}.con9{background-image:url(../img/index-main_9.jpeg);}.con10{background-image:url(../img/index-main_10.jpeg);}

以下で動かそうとすると10個目は正しくコンパイルされません
10ではなく010でコンパイルされてしまうため

SCSS
@for$ifrom1through10{.con#{$i}{background-image:url(../img/index-main_0#{$i}.jpeg);}}}//10個目は../img/index-main_010/jpegとコンパイルされてしまう

この場合はif文ネストして1桁と2桁で分岐します。

SCSS
@for$ifrom1through10{@if$i<10{.con#{$i}{background-image:url(../img/index-main_0#{$i}.jpeg);}}}@else{.con#{$i}{background-image:url(../img/index-main_#{$i}.jpeg);}}}}

@for@ifを使うと冗長なCSSをスッキリまとめられる場合もありますので
SCSSで記述する場合は積極的に取り入れていきましょう。
※使わないほうが可視性の高いこともあります。


Viewing all articles
Browse latest Browse all 8944

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>