これらの SASS ミックスインと関数を使用してワークフローを最大化する

Barbara Streisand
リリース: 2024-10-11 10:44:30
オリジナル
807 人が閲覧しました

こんにちは!同じ CSS を何度も書いていることに気付いた場合、またはデザインをさまざまな画面サイズでレスポンシブにするのに苦労したことがある場合は、ここが正しい場所です。この記事では、ワークフローをよりスムーズにしてくれる、非常に便利な SASS ミックスインと関数をいくつか紹介します。これらの小さなツールのおかげで、コードを DRY (繰り返さない) に保ち、レスポンシブ デザイン、レイヤー化、キャッシュ無効化などを簡単に行うことができ、時間と労力を大幅に節約できました。

ピクセルからレムへの変換、よりクリーンなレイアウトのための z-index の処理、再利用可能なヘルパー クラスの作成など、あなたのために役立つものがここにあります。プロジェクトに簡単に追加してすぐに使い始めることができる、これらのミックスインと関数について説明します。

これから示す例は改良したり拡張したりすることができ、さらに多様な例をオンラインで見つけることができます。しかし、これらは私が個人的に最もよく使用するものです。飛び込んでみましょう!

  • ピクセルからレムへの関数
  • レスポンシブ デザイン用のメディア クエリ Mixin
  • 階層化のための Z インデックス関数
  • 単一または複数の背景画像をキャッシュ無効化
  • フォントのキャッシュ無効化
  • 絶対位置決め
  • テキスト省略記号
  • アイテムホバー
  • 再利用性のためのヘルパー クラス

ピクセルからレムへの関数

ピクセル値を rem に変換します。

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

// Usage
div {
  font-size: rem(32);
  width: rem(600);
}
ログイン後にコピー

レスポンシブ デザインのためのメディア クエリ Mixin

メディア クエリを使用したレスポンシブ デザインのための、シンプルで読みやすい mixin の使用法。

@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;
  }
}
ログイン後にコピー

階層化のための Z インデックス機能

この設定により、レイアウトの柔軟性と拡張性を維持しながら、ビジュアル レイヤーの明確な階層がレイアウトに確保されます。

$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);
}
ログイン後にコピー

単一または複数の背景画像をキャッシュ無効にする

ID を使用して背景画像をキャッシュする

$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;
}
ログイン後にコピー

フォントのキャッシュ無効化

ID を使用してアプリのフォントをキャッシュします。

$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;
}
ログイン後にコピー

絶対位置決め

絶対位置決め要素のミックスイン。上下左右の順番が重要です。

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

// Usage

div {
  @include absolute(100px, 100px, auto, auto);
}
ログイン後にコピー

テキストの省略記号

あふれたテキストを省略記号で切り詰めます。

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

// Usage
.element {
  @include text-ellipsis(200px);
}
ログイン後にコピー

アイテムホバー

ホバー状態の場合、特定のプロパティを渡すことができます。

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

// Usage
.button {
  @include item-hover(white, black);
}
ログイン後にコピー

再利用性のためのヘルパー クラス

// 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;
}
ログイン後にコピー

読んでいただきありがとうございます。記事が役に立ったと思われる場合は、他の人もアクセスできるように、「いいね」やコメントを忘れないでください。寛大な日なら、コーヒーを買ってきてくれることもできます。 ?

Maximize Your Workflow with These SASS Mixins and Functions

以上がこれらの SASS ミックスインと関数を使用してワークフローを最大化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート