Salut, amis développeurs d'interface utilisateur ! Êtes-vous prêt à faire passer vos compétences Bootstrap au niveau supérieur ? Si vous hochez la tête (ou du moins y réfléchissez), vous êtes au bon endroit. Aujourd'hui, nous plongeons dans 10 superbes hacks Bootstrap qui vous faciliteront la vie et feront briller vos projets. Que vous soyez un débutant Bootstrap ou un professionnel chevronné, ces astuces vous aideront à travailler plus intelligemment, pas plus fort. Alors, prenez votre boisson préférée, installez-vous confortablement et explorons quelques façons intéressantes de dynamiser votre développement Bootstrap !
Commençons par quelque chose qui change la donne : des points d'arrêt de grille personnalisés. Nous savons tous que les points d'arrêt par défaut de Bootstrap sont excellents, mais parfois ils ne suffisent tout simplement pas aux besoins spécifiques de notre projet. C'est ici que la magie opère :
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, custom: 1600px );
Vous disposez désormais d'un tout nouveau point d'arrêt « personnalisé » à 1 600 px ! Mais attendez, il y a plus. N'oubliez pas de mettre à jour les largeurs maximales de votre conteneur pour qu'elles correspondent :
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px, custom: 1540px );
Avec ces changements, vous pouvez désormais utiliser des classes comme col-custom-6 pour un contrôle de mise en page ultra-précis. Cool, non ?
Si vous n'utilisez pas les mixins Sass avec Bootstrap, vous passez à côté d'un véritable gain de temps. Regardons quelques exemples qui vous feront vous demander comment vous avez pu vivre sans eux.
Vous avez toujours voulu ajuster la taille des polices en fonction de la largeur de l'écran sans écrire une tonne de requêtes multimédias ? Regarde ça :
@mixin responsive-font($min-size, $max-size, $min-width, $max-width) { font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width}))); } // Usage h1 { @include responsive-font(24, 48, 320, 1200); }
Ce mixin redimensionne en douceur la taille de votre police entre 24 px avec une largeur de fenêtre de 320 px et 48 px avec une largeur de fenêtre de 1 200 px. Plutôt sympa, hein ?
Centrer les choses est une tâche courante, alors pourquoi ne pas la rendre très simple ?
@mixin flex-center { display: flex; justify-content: center; align-items: center; } // Usage .centered-content { @include flex-center; }
Vous pouvez désormais centrer n'importe quoi avec une seule ligne de code. Votre futur moi vous remerciera !
Les styles de formulaire de Bootstrap sont excellents, mais parfois vous voulez quelque chose d'un peu plus unique. Jazzons un peu les choses !
Qui a dit que les boutons radio devaient être ennuyeux ? Essayez ceci pour la taille :
.custom-radio { .custom-control-input { &:checked ~ .custom-control-label::before { background-color: #007bff; border-color: #007bff; } &:checked ~ .custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } } }
Cela vous donne un bouton radio élégant et moderne avec une belle animation une fois sélectionné. N'oubliez pas de mettre à jour les couleurs pour qu'elles correspondent à votre marque !
Les listes déroulantes de sélection par défaut peuvent paraître un peu... enfin, par défaut. Réparons ça :
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, custom: 1600px );
Cela donne à vos listes déroulantes de sélection une icône de flèche personnalisée et un bel effet de mise au point. Ce sont les petites choses qui comptent !
Les classes utilitaires de Bootstrap sont incroyablement puissantes, mais parfois vous en avez besoin d'un peu plus. Créons quelques utilitaires personnalisés pour vous faciliter la vie.
Vous voulez un contrôle plus granulaire sur votre espacement ? Essayez ceci :
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px, custom: 1540px );
Vous avez désormais des cours comme mt-md-6 pour une marge supérieure de 4rem sur les écrans moyens et plus. La perfection de l'espacement !
Besoin de tronquer le texte avec élégance ? Voici une classe utilitaire pratique :
@mixin responsive-font($min-size, $max-size, $min-width, $max-width) { font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width}))); } // Usage h1 { @include responsive-font(24, 48, 320, 1200); }
Ajoutez simplement cette classe à n’importe quel élément et le texte long sera coupé par des points de suspension. Simple mais efficace !
Bien que Bootstrap fournisse un excellent ensemble de composants, vous avez parfois besoin de quelque chose d'un peu différent. Créons un composant personnalisé pour pimenter les choses.
Qui n'aime pas un bon effet de survol de carte ? Regarde ça :
@mixin flex-center { display: flex; justify-content: center; align-items: center; } // Usage .centered-content { @include flex-center; }
Vous disposez désormais de cartes qui se soulèvent légèrement et assombrissent leurs images au survol. C'est subtil mais ajoute une belle touche d'interactivité à votre design.
Bootstrap est génial, mais il peut être un peu lourd si vous n'utilisez pas toutes ses fonctionnalités. Voyons comment le mincir.
Au lieu d'inclure l'intégralité de Bootstrap, pourquoi ne pas créer une version personnalisée avec uniquement les composants dont vous avez besoin ? Voici comment :
Par exemple, si vous n'utilisez pas de carrousels ou d'info-bulles, votre bootstrap.scss pourrait ressembler à ceci :
.custom-radio { .custom-control-input { &:checked ~ .custom-control-label::before { background-color: #007bff; border-color: #007bff; } &:checked ~ .custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } } }
Cela peut réduire considérablement la taille de votre fichier CSS et améliorer les temps de chargement. Chaque kilo-octet compte !
L'accessibilité est cruciale pour créer des expériences Web inclusives. Examinons quelques moyens d'améliorer l'accessibilité de Bootstrap.
Ignorer les liens aide les utilisateurs du clavier à naviguer plus efficacement sur votre site. Voici comment les mettre en œuvre :
.custom-select { appearance: none; background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px; padding-right: 2.25rem; &:focus { border-color: #80bdff; box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } }
$spacer: 1rem; $spacers: ( 0: 0, 1: $spacer * .25, 2: $spacer * .5, 3: $spacer, 4: $spacer * 1.5, 5: $spacer * 3, 6: $spacer * 4, 7: $spacer * 5 ); @each $breakpoint in map-keys($grid-breakpoints) { @include media-breakpoint-up($breakpoint) { $infix: breakpoint-infix($breakpoint, $grid-breakpoints); @each $prop, $abbrev in (margin: m, padding: p) { @each $size, $length in $spacers { .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; } .#{$abbrev}t#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-top: $length !important; } .#{$abbrev}r#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-right: $length !important; } .#{$abbrev}b#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-bottom: $length !important; } .#{$abbrev}l#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-left: $length !important; } } } } }
Cela crée un lien qui n'est visible que lorsqu'il est ciblé, permettant aux utilisateurs du clavier d'accéder directement au contenu principal.
Les styles de focus par défaut de Bootstrap sont fonctionnels, mais nous pouvons les rendre plus attrayants visuellement :
$grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px, custom: 1600px );
Cela crée un style de mise au point plus visible qui fonctionne bien avec la palette de couleurs de Bootstrap.
Les images peuvent faire ou défaire votre conception, en particulier sur les appareils mobiles. Examinons quelques façons de gérer les images de manière réactive.
Vous voulez une image d'arrière-plan pleine largeur qui s'affiche parfaitement sur n'importe quel appareil ? Essayez ceci :
$container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px, custom: 1540px );
Cela charge des images de différentes tailles en fonction de la largeur de la fenêtre d'affichage, garantissant ainsi que votre arrière-plan soit toujours net, sans fichiers inutilement volumineux sur des appareils plus petits.
Améliorez les temps de chargement de vos pages en chargeant les images paresseusement :
@mixin responsive-font($min-size, $max-size, $min-width, $max-width) { font-size: calc(#{$min-size}px + (#{$max-size} - #{$min-size}) * ((100vw - #{$min-width}px) / (#{$max-width} - #{$min-width}))); } // Usage h1 { @include responsive-font(24, 48, 320, 1200); }
@mixin flex-center { display: flex; justify-content: center; align-items: center; } // Usage .centered-content { @include flex-center; }
Ce script utilise l'API Intersection Observer pour charger les images uniquement lorsqu'elles sont sur le point d'entrer dans la fenêtre d'affichage, améliorant ainsi considérablement les temps de chargement initiaux des pages.
Le mode sombre fait fureur ces jours-ci, et pour cause. C'est plus agréable pour les yeux dans des conditions de faible luminosité et peut économiser la batterie des écrans OLED. Ajoutons une bascule en mode sombre à notre site Bootstrap.
Tout d'abord, créons quelques variables du mode sombre :
.custom-radio { .custom-control-input { &:checked ~ .custom-control-label::before { background-color: #007bff; border-color: #007bff; } &:checked ~ .custom-control-label::after { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } } }
Maintenant, ajoutons un bouton bascule :
.custom-select { appearance: none; background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px; padding-right: 2.25rem; &:focus { border-color: #80bdff; box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } }
Et le JavaScript pour que ça marche :
$spacer: 1rem; $spacers: ( 0: 0, 1: $spacer * .25, 2: $spacer * .5, 3: $spacer, 4: $spacer * 1.5, 5: $spacer * 3, 6: $spacer * 4, 7: $spacer * 5 ); @each $breakpoint in map-keys($grid-breakpoints) { @include media-breakpoint-up($breakpoint) { $infix: breakpoint-infix($breakpoint, $grid-breakpoints); @each $prop, $abbrev in (margin: m, padding: p) { @each $size, $length in $spacers { .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; } .#{$abbrev}t#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-top: $length !important; } .#{$abbrev}r#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-right: $length !important; } .#{$abbrev}b#{$infix}-#{$size}, .#{$abbrev}y#{$infix}-#{$size} { #{$prop}-bottom: $length !important; } .#{$abbrev}l#{$infix}-#{$size}, .#{$abbrev}x#{$infix}-#{$size} { #{$prop}-left: $length !important; } } } } }
Vous disposez désormais d'un mode sombre fonctionnel qui mémorise les préférences de l'utilisateur !
Enfin, ajoutons quelques animations subtiles pour rendre votre site Bootstrap plus dynamique et attrayant.
Tout d'abord, installons la bibliothèque AOS (Animate On Scroll) :
.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
Maintenant, nous pouvons ajouter des animations à nos éléments :
.fancy-card { transition: transform 0.3s ease, box-shadow 0.3s ease; &:hover { transform: translateY(-5px); box-shadow: 0 4px 15px rgba(0,0,0,0.1); } .card-img-top { transition: opacity 0.3s ease; } &:hover .card-img-top { opacity: 0.8; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!