Il y a trois façons qui me viennent à l'esprit :
- Vous pouvez créer un
variables.scss
dans lequel vous pouvez écrire la valeur de vos points d'arrêt :
$sm: 576px; $md: 768px; $lg: 992px; $xl: 1200px;
Et utilisez les variables suivantes dans votre scss :
@media only screen and (min-width: $sm) {
.container {
.max-width: 450px;
}
}
@media only screen and (min-width: $md) {
.container {
.max-width: 650px;
}
}
@media only screen and (min-width: $lg) {
.container {
.max-width: 900px;
}
}
@media only screen and (min-width: $xl) {
.container {
.max-width: 1000px;
}
}
-
Ou vous pouvez utiliser les variables mentionnées dans votre mixins.scss
pour créer des mixins de media query :
@mixin small { @media only screen and (min-width: $sm) { @content; } }
Et ensuite, utilisez ces mixins dans vos codes scss principaux :
.container {
@include small {
max-width: 450px;
}
...
}
-
Ou si les cas d'utilisation de ces media queries sont limités (par exemple, masquer et afficher des éléments), vous pouvez définir d'autres mixins qui incluent toutes les variations :
$displays: none inline inline-block block table table-cell table-row flex inline-flex; $sizes: ( sm: $sm, md: $md, lg: $lg, lg: $xl ); @each $display in $displays: @each $size-key $size in $sizes { .display-#{size-key}-#{display} { display: $display !important; } } }
Une note sur l'importation de fichiers : Personnellement, j'importerais tous mes scss d'aide (variables, mixins, etc.). styles/index.scss
dans la racine de mon projet parmi les normalisations et autres règles globales que je veux définir, et ensuite importer ce fichier dans mes autres fichiers scss :
// styles/index.scss
@import './variables.scss';
@import './mixins.scss';
...
// container.scss
@import './styles/index.scss';