Maison > interface Web > tutoriel CSS > Maximisez votre flux de travail avec ces mixins et fonctions SASS

Maximisez votre flux de travail avec ces mixins et fonctions SASS

Barbara Streisand
Libérer: 2024-10-11 10:44:30
original
823 Les gens l'ont consulté

Salut ! Si vous avez déjà écrit le même CSS encore et encore, ou si vous avez du mal à rendre votre conception réactive sur différentes tailles d'écran, vous êtes au bon endroit. Dans cet article, je vais partager quelques mixins et fonctions SASS vraiment utiles qui ont rendu mon flux de travail beaucoup plus fluide. Ces petits outils m'ont permis d'économiser beaucoup de temps et d'efforts en gardant mon code SEC (Ne vous répétez pas) et en facilitant des tâches telles que la conception réactive, la superposition et le contournement du cache.

Qu'il s'agisse de convertir des pixels en rems, de gérer le z-index pour des mises en page plus propres ou de créer des classes d'assistance réutilisables, j'ai quelque chose ici pour vous. Laissez-moi vous présenter ces mixins et fonctions que vous pouvez facilement intégrer à votre projet et commencer à utiliser immédiatement.

Les exemples que je vais montrer peuvent être améliorés ou développés, et vous pouvez trouver des exemples encore plus diversifiés en ligne. Mais ce sont ceux que j’utilise personnellement le plus. Allons-y !

  • Fonction Pixel vers Rem
  • Requêtes multimédias Mixin pour une conception réactive
  • Fonction Z-Index pour la superposition hiérarchique
  • Cache Busing avec une ou plusieurs images d'arrière-plan
  • Polices anti-cache
  • Positionnement absolu
  • Texte points de suspension
  • Survol d'un article
  • Classes d'aide pour la réutilisabilité

Fonction Pixel à Rem

Convertir les valeurs de pixels en rem.

@function rem($pixel) {
  $convertedValue: ($pixel / 16) + rem;
  @return $convertedValue;
}

// Usage
div {
  font-size: rem(32);
  width: rem(600);
}
Copier après la connexion

Media Queries Mixin pour une conception réactive

Une utilisation du mixin simple et facile à lire pour une conception réactive avec des requêtes multimédias.

@mixin small {
  @media only screen and (max-width: 768px) {
    @content;
  }
}

@mixin medium {
  @media only screen and (max-width: 992px) {
    @content;
  }
}

@mixin large {
  @media only screen and (max-width: 1200px) {
    @content;
  }
}

// Usage
.title {
  font-size: 16px;

  @include small {
    font-size: 14px;
  }
  @include medium {
    font-size: 18px;
  }

  @include large {
    font-size: 20px;
  }
}
Copier après la connexion

Fonction Z-Index pour la superposition hiérarchique

Cette configuration garantit que votre mise en page dispose d'une hiérarchie claire de couches visuelles tout en la gardant flexible et évolutive.

$z-index: (
  dropdown: 6,
  mobileMenu: 7,
  stickyHeader: 8,
  tooltip: 10,
  modalBackdrop: 11,
  modal: 12,
  header: 15,
  notificationToast: 18,
  spinner: 20,
);

@function z-index($key) {
  @return map-get($z-index, $key);
}

.header {
  z-index: z-index(header);
}
Copier après la connexion

Contournement du cache avec une ou plusieurs images d'arrière-plan

Cache les images d'arrière-plan à l'aide d'un identifiant

$imageId: unique_id();

@mixin cacheBustBgImages($urls...) {
  $backgroundImages: ();

  @each $url in $urls {
    $backgroundImages: append(
      $backgroundImages,
      url("#{$url}?v=#{$imageId}"),
      comma
    );
  }
  background-image: $backgroundImages;
}

//   Single Image Usage

.hero {
  @include cacheBustBgImages("asset/images/image.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

// Multiple Image Usage

.hero {
  @include cacheBustBgImages(
    "asset/images/image.png",
    "asset/images/other-image.png"
  );
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
Copier après la connexion

Polices de contournement du cache

Cache les polices de l'application à l'aide d'un identifiant.

$fontId: unique_id();

@font-face {
  font-family: "Custom Fonts";
  src: url("asset/images/custom-font.eot?v=#{$fontId}");
  src: url("asset/images/custom-font.eot?v=#{$fontId}#iefix") format("embedded-opentype"),
    url("asset/images/custom-font.woff2?v=#{$fontId}") format("woff2"),
    url("asset/images/custom-font.woff?v=#{$fontId}") format("woff"), url("asset/images/custom-font.ttf?v=#{$fontId}")
      format("truetype"),
    url("asset/images/custom-font.svg?v=#{$fontId}#svg") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
Copier après la connexion

Positionnement absolu

Un mixin pour les éléments de positionnement absolu. L'ordre en haut, à droite, en bas et à gauche est important.

@mixin absolute($top, $right, $bottom, $left) {
  position: absolute;
  top: $top;
  right: $right;
  bottom: $bottom;
  left: $left;
}

// Usage

div {
  @include absolute(100px, 100px, auto, auto);
}
Copier après la connexion

Points de suspension du texte

Tronquer le texte qui déborde avec des points de suspension.

@mixin text-ellipsis($max-width: 100%) {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: $max-width;
}

// Usage
.element {
  @include text-ellipsis(200px);
}
Copier après la connexion

Survol de l'article

Pour les états de survol, vous permettant de passer dans des propriétés spécifiques.

@mixin item-hover($color, $bg-color) {
  &:hover {
    color: $color;
    background-color: $bg-color;
  }
}

// Usage
.button {
  @include item-hover(white, black);
}
Copier après la connexion

Classes d'assistance pour la réutilisabilité

// Center child elements both vertically and horizontally
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

// Center element both horizontally and vertically
.absolute-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

// Center text
.text-center {
  text-align: center;
}

// Hide element
.hidden {
  display: none;
}

// Hide element on desktop view
.d-none-desktop {
  @media screen and (min-width: 680px) {
    display: none;
  }
}

// Hide element on mobile view
.d-none-mobile {
  @media screen and (max-width: 680px) {
    display: none;
  }
}

// Add border radius to element
.border-radius {
  border-radius: 10px;
}
Copier après la connexion

Merci d'avoir lu. Si vous trouvez l'article utile, n'oubliez pas d'aimer et de commenter afin que d'autres puissent également y accéder. Si vous êtes dans une journée généreuse, vous pouvez même m'offrir un café. ?

Maximize Your Workflow with These SASS Mixins and Functions

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal