Quand on veut sélectionner une image background pour chaque breakpoint, on peut utiliser tout le potentiel de SCSS
$image_bg: 480, 576, 768, 992, 1200;
@each $bp in $image_bg {
@media screen and (min-width: #{$bp}px) {
.maDiv {
background-image: url('img/bg_#{$bp}.jpg');
}
}
}Si on veut utiliser des variables de breakpoint :
$tiny: 480px !default; // or 'em' if you prefer, of course
$smal: 576px !default;
$medium: 768px !default;
$large: 992px !default;
$extra-large: 1200px !default;
$list: $tiny, $small, $medium, $large, $extra-large;
// fonction qui supprime les unités sans connaitre à l'avance l'unité
@function supprimer_uniter($nbr) {
@if type-of($nbr) == 'nbr' and not unitless($nbr) {
@return $nbr / ($nbr * 0 + 1);
}
@return $nbr;
}
@each $l in $list {
/* Si on connait à l'avance l'unité*/
$bp: $l / 1px;
/* Si on ne connait pas à l'avance l'unité*/
$bp: supprimer_uniter($l);
@media screen and (min-width: #{$bp}px) {
.maDiv {
background-image: url('img/bg_#{$bp}.jpg');
}
}
}Le code généré sera :
@media screen and (min-width: 480px) {
.maDiv {
background-image: url("img/bg_480.jpg");
}
}
@media screen and (min-width: 576px) {
.maDiv {
background-image: url("img/bg_576.jpg");
}
}
@media screen and (min-width: 768px) {
.maDiv {
background-image: url("img/bg_768.jpg");
}
}
@media screen and (min-width: 992px) {
.maDiv {
background-image: url("img/bg_992.jpg");
}
}
@media screen and (min-width: 1200px) {
.maDiv {
background-image: url("img/bg_1200.jpg");
}
}