Maison  >  Article  >  interface Web  >  Astuces Bootstrap que tout développeur d'interface utilisateur devrait connaître

Astuces Bootstrap que tout développeur d'interface utilisateur devrait connaître

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 06:13:021022parcourir

Bootstrap Tricks Every UI Developer Should Know

Introduction : Booster votre jeu Bootstrap

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 !

1. Points d'arrêt de grille personnalisés : réactivité sur mesure

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 :

Comment implémenter des points d'arrêt personnalisés

  1. Ouvrez votre fichier de variables Sass (généralement _variables.scss).
  2. Localisez la variable $grid-breakpoints.
  3. Modifiez les points d'arrêt existants ou ajoutez-en de nouveaux comme ceci :
$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 ?

2. Sass Mixins : vos nouveaux meilleurs amis

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.

Tailles de police réactives

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 ?

Centre Flexbox rapide

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 !

3. Style de formulaire personnalisé : démarquez-vous de la foule

Les styles de formulaire de Bootstrap sont excellents, mais parfois vous voulez quelque chose d'un peu plus unique. Jazzons un peu les choses !

Boutons radio fantaisie

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 !

Listes déroulantes de sélection élégantes

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 !

4. Classes utilitaires : le couteau suisse du CSS

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.

Marges et remplissages réactifs

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 !

Troncature du texte

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 !

5. Composants personnalisés : sortir des sentiers battus

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.

Cartes fantaisie avec effets de survol

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.

6. Optimisation des performances : réduire la graisse

Bootstrap est génial, mais il peut être un peu lourd si vous n'utilisez pas toutes ses fonctionnalités. Voyons comment le mincir.

Construction personnalisée

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 :

  1. Clonez le référentiel Bootstrap.
  2. Accédez au dossier scss.
  3. Ouvrez bootstrap.scss.
  4. Commentez les composants dont vous n'avez pas besoin.
  5. Compilez votre version personnalisée.

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 !

7. Améliorations de l'accessibilité : conception inclusive pour tous

L'accessibilité est cruciale pour créer des expériences Web inclusives. Examinons quelques moyens d'améliorer l'accessibilité de Bootstrap.

Passer les liens

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.

Styles de mise au point améliorés

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.

8. Images réactives : une image parfaite sur n’importe quel appareil

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.

Images d'arrière-plan réactives

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.

Chargement paresseux

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.

9. Mode sombre : adopter le côté obscur

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.

Implémentation du mode sombre

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 !

10. Intégration d'animation : donner vie à votre site

Enfin, ajoutons quelques animations subtiles pour rendre votre site Bootstrap plus dynamique et attrayant.

Animer sur défilement

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn