J'utilise Bootstrap 3 pour créer une mise en page réactive dans laquelle je souhaite ajuster quelques tailles de police en fonction de la taille de l'écran. Comment puis-je utiliser des requêtes multimédias pour créer ce type de logique?
371
Réponses:
Bootstrap 3
Voici les sélecteurs utilisés dans BS3, si vous voulez rester cohérent:
Remarque: pour info, cela peut être utile pour le débogage:
Bootstrap 4
Voici les sélecteurs utilisés dans BS4. Il n'y a pas de paramètre "le plus bas" dans BS4 car "très petit" est la valeur par défaut. C'est-à-dire que vous devez d'abord coder la taille XS, puis avoir ces remplacements de supports par la suite.
Mise à jour 2019-02-11: les informations BS3 sont toujours exactes à partir de la version 3.4.0, BS4 mise à jour pour la nouvelle grille, précise à partir de 4.3.0.
la source
<span class="visible-xs">SIZE XS</span><span class="visible-sm">SIZE SM</span><span class="visible-md">SIZE MD</span><span class="visible-lg">SIZE LG</span>
Sur la base de la réponse de bisio et du code Bootstrap 3, j'ai pu trouver une réponse plus précise pour tous ceux qui souhaitent simplement copier et coller l'ensemble complet de requêtes multimédias dans leur feuille de style:
la source
min-width
, mais vous l'avezmax-width
également utilisée , alors quelle est la différence?, Est-ce nécessaire?Si vous utilisez LESS ou SCSS / SASS et que vous utilisez une version LESS / SCSS de Bootstrap, vous pouvez également utiliser des variables , à condition d'y avoir accès. Une traduction MOINS de la réponse de @ full-decent serait la suivante:
Il existe également des variables pour
@screen-sm-max
et@screen-md-max
, qui sont 1 pixel de moins que@screen-md-min
et@screen-lg-min
, généralement, pour une utilisation avec@media(max-width)
.EDIT: Si vous utilisez SCSS / SASS, les variables commencent par un
$
au lieu d'un@
, ce serait donc$screen-xs-max
etc.la source
$screen-xs-max
etc. (et si vous utilisez LESS / SCSS localement mais en important la version CSS de Bootstrap, vous n'avez pas de chance.)@screen-tablet
,@screen-desktop
Et@screen-lg-desktop
ont été désapprouvée. Il serait peut-être temps de mettre à jour votre réponse déjà impressionnante. ;-)Ce sont les valeurs de Bootstrap3:
la source
and
conditions. @JasonMiller donc ce n'est pas exactement un "must", cela dépend des spécifications et des exigences du modèle.Voici deux exemples.
Une fois que la fenêtre devient large ou inférieure à 700 pixels, faites toutes les balises h1 à 20 pixels.
Faites tous les 20 pixels du h1 jusqu'à ce que la fenêtre atteigne 700 pixels ou plus.
J'espère que cela aide: 0)
la source
font-size: 20px
pour lesh1
balises dans les deux cas. Pour une meilleure compréhension, vous pouvez avoir une utilisation différentefont-size
comme demandé en question. BTW Ça va toujours.Voici un exemple plus modulaire utilisant LESS pour imiter Bootstrap sans importer le moins de fichiers.
la source
Sur la base des réponses des autres utilisateurs, j'ai écrit ces mixins personnalisés pour une utilisation plus facile:
Moins d'entrée
Exemple d'utilisation
Entrée SCSS
Exemple d'utilisation:
Production
la source
Depuis Bootstrap v3.3.6, les requêtes multimédias suivantes sont utilisées, ce qui correspond à la documentation qui décrit les classes réactives disponibles ( http://getbootstrap.com/css/#responsive-utilities ).
Requêtes multimédias extraites du référentiel Bootstrap GitHub à partir des fichiers less suivants: -
https://github.com/twbs/bootstrap/blob/v3.3.6/less/responsive-utilities.less https://github.com/twbs/bootstrap/blob/v3.3.6/less/variables.less
la source
Ou simple Sass-Compass:
Exemple:
la source
gardez à l'esprit qu'éviter la mise à l'échelle du texte est la principale raison pour laquelle les mises en page réactives existent. toute la logique derrière les sites réactifs est de créer des mises en page fonctionnelles qui affichent efficacement votre contenu afin qu'il soit facilement lisible et utilisable sur plusieurs tailles d'écran.
Bien qu'il soit nécessaire de mettre le texte à l'échelle dans certains cas, veillez à ne pas miniaturiser votre site et à ne pas rater le sujet.
voici un exemple de toute façon.
Gardez également à l'esprit que la fenêtre 480 a été supprimée dans le bootstrap 3.
la source
Nous utilisons les requêtes multimédias suivantes dans nos fichiers Less pour créer les points d'arrêt clés dans notre système de grille.
voir aussi sur Bootstrap
la source
la source
Voici une solution à guichet unique encore plus simple, comprenant des fichiers réactifs distincts basés sur des requêtes multimédias.
Cela permet à toute la logique de requête multimédia et à la logique d'exister de n'avoir qu'une seule page, le chargeur. Cela permet également de ne pas encombrer les requêtes multimédias des feuilles de style réactives elles-mêmes.
base.less ressemblerait à ceci
sm-min.less ressemblerait à ceci
votre index aurait juste à charger le loader.less
peasy facile..
la source
Bootstrap utilise principalement les plages de requêtes multimédias ou points d'arrêt suivants dans nos fichiers Sass source pour notre présentation, notre système de grille et nos composants.
Petits appareils (téléphones portrait, moins de 576 pixels) Pas de requête multimédia
xs
car il s'agit de la valeur par défaut dans BootstrapPetits appareils (téléphones paysage, 576px et plus)
Appareils moyens (tablettes, 768 pixels et plus)
Grands appareils (ordinateurs de bureau, 992 pixels et plus)
Appareils très grands (grands ordinateurs de bureau, 1 200 pixels et plus)
Puisque nous écrivons notre CSS source dans Sass, toutes nos requêtes média sont disponibles via les mixins Sass:
Aucune requête multimédia nécessaire pour le point d'arrêt xs car il est efficace
@media (min-width: 0) { ... }
Pour le comprendre profondément, veuillez consulter le lien ci-dessous
https://getbootstrap.com/docs/4.3/layout/overview/
la source
la source
Utilisez les requêtes média pour IE;
la source
:)
Dans le dernier bootstrap (4.3.1), en utilisant SCSS (SASS), vous pouvez utiliser l'un des @mixin de
/bootstrap/scss/mixins/_breakpoints.scss
Support d'au moins la largeur minimale du point d'arrêt. Aucune requête pour le plus petit point d'arrêt. Rend le @content applicable au point d'arrêt donné et plus large.
@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints)
Support d'au plus la largeur maximale du point d'arrêt. Aucune requête pour le plus grand point d'arrêt. Rend le @content applicable au point d'arrêt donné et plus étroit.
@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints)
Média couvrant plusieurs largeurs de point d'arrêt. Rend le @content appliqué entre les points d'arrêt min et max
@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints)
Média entre les largeurs minimale et maximale du point d'arrêt. Pas de minimum pour le plus petit point d'arrêt et pas de maximum pour le plus grand. Fait que le @content s'applique uniquement au point d'arrêt donné, et non aux fenêtres plus larges ou plus étroites.
@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints)
Par exemple:
Documentation:
Bon codage;)
la source
Pour améliorer la réponse principale:
Vous pouvez utiliser l' attribut media de la
<link>
balise (il prend en charge les requêtes média) afin de télécharger uniquement le code dont l'utilisateur a besoin.Avec cela, le navigateur télécharge toutes les ressources CSS, quel que soit l' attribut média . La différence est que si la requête multimédia de l'attribut multimédia est évaluée à false, ce fichier .css et son contenu ne seront pas bloqués au rendu.
Par conséquent, il est recommandé d'utiliser l' attribut media dans le
<link>
balise car il garantit une meilleure expérience utilisateur.Ici, vous pouvez lire un article Google sur ce problème https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css
Quelques outils qui vous aideront à automatiser la séparation de votre code CSS dans différents fichiers en fonction de vos requêtes multimédias
Webpack https://www.npmjs.com/package/media-query-plugin https://www.npmjs.com/package/media-query-splitting-plugin
PostCSS https://www.npmjs.com/package/postcss-extract-media-query
la source