Abaixo, temos um mixin SASS muito fácil para gerar uma lista de ícones com base em uma lista de rede que corresponde aos seus nomes de arquivo de ícone usando @each. Usando modernizr para utilizar a classe .svg com um substituto .png.
// List the network names
$networks: twitter facebook skype dribbble gplus
// generate the svg version
=svg-icons
@each $icon in $networks
.#{$icon}
background: image-url("svg/#{$icon}.svg") no-repeat
// png fallback
=png-icons
@each $icon in $networks
.#{$icon}
background: image-url("png/#{$icon}.png") no-repeat
// output the css
.svg .social
+svg-icons
.social
+png-icons
produziria:
.svg .social .twitter {
background: url('/img/svg/twitter.svg') no-repeat;
}
.svg .social .facebook {
background: url('/img/svg/facebook.svg') no-repeat;
}
.svg .social .skype {
background: url('/img/svg/skype.svg') no-repeat;
}
.svg .social .dribbble {
background: url('/img/svg/dribbble.svg') no-repeat;
}
.svg .social .gplus {
background: url('/img/svg/gplus.svg') no-repeat;
}
// png fallbacks
.social .twitter {
background: url('/img/png/twitter.png') no-repeat;
}
.social .facebook {
background: url('/img/png/facebook.png') no-repeat;
}
.social .skype {
background: url('/img/png/skype.png') no-repeat;
}
.social .dribbble {
background: url('/img/png/dribbble.png') no-repeat;
}
.social .gplus {
background: url('/img/png/gplus.png') no-repeat;
}
Tenho certeza de que há espaço para otimização dos itens acima, então, compartilhe suas dicas / remakes e me diga o que você achou.
Apenas algumas coisas que podem ser feitas usando o SASS para suas folhas de estilo.