こんにちは!同じ CSS を何度も書いていることに気付いた場合、またはデザインをさまざまな画面サイズでレスポンシブにするのに苦労したことがある場合は、ここが正しい場所です。この記事では、ワークフローをよりスムーズにしてくれる、非常に便利な SASS ミックスインと関数をいくつか紹介します。これらの小さなツールのおかげで、コードを DRY (繰り返さない) に保ち、レスポンシブ デザイン、レイヤー化、キャッシュ無効化などを簡単に行うことができ、時間と労力を大幅に節約できました。
ピクセルからレムへの変換、よりクリーンなレイアウトのための z-index の処理、再利用可能なヘルパー クラスの作成など、あなたのために役立つものがここにあります。プロジェクトに簡単に追加してすぐに使い始めることができる、これらのミックスインと関数について説明します。
これから示す例は改良したり拡張したりすることができ、さらに多様な例をオンラインで見つけることができます。しかし、これらは私が個人的に最もよく使用するものです。飛び込んでみましょう!
ピクセル値を rem に変換します。
@function rem($pixel) { $convertedValue: ($pixel / 16) + rem; @return $convertedValue; } // Usage div { font-size: rem(32); width: rem(600); }
メディア クエリを使用したレスポンシブ デザインのための、シンプルで読みやすい 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-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; }
読んでいただきありがとうございます。記事が役に立ったと思われる場合は、他の人もアクセスできるように、「いいね」やコメントを忘れないでください。寛大な日なら、コーヒーを買ってきてくれることもできます。 ?
以上がこれらの SASS ミックスインと関数を使用してワークフローを最大化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。