2014-09-22 76 views
0

我有显示的背景图像的一类:递增背景图像ID与萨斯

@media all and (min-width: 31.25em) { 
    .switch-image { 
     display:block; 
     background-image: url(/asset/img/img-1.png); 
     background-repeat: no-repeat; 
     background-position: center; 
    } 
} 

我的问题是,我有大约30的图像(img-1.pngimg-30.png

如何能我省了不用写上面30次。

我可以通过上述循环并增加panel-11所以panel-2

+0

你能举一个HTML的小例子吗?所有30个元素是否有相同的类(第一个元素将获得img-2,第二个img-2 ...)或不同的类('panel-1','panel-2')? – nishantjr 2014-09-22 12:09:19

+0

@nishantjr - HTML的例子可以在这里找到:http://scheckoverflow.com/questions/25972274/css-image-swapping-removing-duplicated-code/25972502?noredirect=1#comment40667507_25972502 – 2014-09-22 12:11:28

回答

1

您可以使用@for看:

@media all and (min-width: 31.25em) { 
    @for $i from 1 through 30 { 
    .switch-image-#{$i} { 
     display:block; 
     background-image: url(/asset/img/img-#{$i}.png); 
     background-repeat: no-repeat; 
     background-position: center; 
    } 
    } 
} 

希望它能帮助。

问候。

+1

'.switch-image- #{$ I}'? – nishantjr 2014-09-22 11:49:33

+0

@nishantjr - 如何使用您的建议影响HTML标记?请你能提供例子吗? – 2014-09-22 11:52:41

+0

根据我对'SASS'的理解(以前从未使用过),这会为'.switch-image'生成30个css声明,只有最后一个'background-image'生效,所以不起作用。 [链接到文档](http://sass-lang.com/documentation/file.SASS_REFERENCE.html#_10) – nishantjr 2014-09-22 12:07:24