「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > SCSS ミックスインと関数を使用して CSS を改善する

SCSS ミックスインと関数を使用して CSS を改善する

2024 年 11 月 8 日に公開
ブラウズ:939

Make Your CSS Better with SCSS Mixins and Functions

SCSS は、コードの管理を容易にする CSS の拡張機能です。 SCSS では、ミックスインと関数を使用して、同じコードを何度も記述することを避けることができます。この記事では、時間を節約しコードをすっきりさせる、便利な SCSS ミックスインと関数をいくつか紹介します。

ミックスインと関数を使用する理由 CSS を記述するとき、同じスタイルを繰り返すことがよくあります。 SCSS ミックスインと関数のヘルプ:

  • 繰り返しを避ける: 一般的なスタイルを一度作成すれば、それをどこでも使用できます。
  • 柔軟性の追加: パラメーターを使用してスタイルを簡単に変更します。
  • 動的スタイルの作成: 計算を使用して、より柔軟なデザインを作成します。

1. レスポンシブ ブレークポイント Mixin

Web サイトをレスポンシブにするには、大量のメディア クエリを記述する必要があります。このミックスインにより、ブレークポイントの処理が簡単になります。

@mixin respond-to($breakpoint) {
  @if $breakpoint == mobile {
    @media (max-width: 600px) { @content; }
  } @else if $breakpoint == tablet {
    @media (max-width: 900px) { @content; }
  } @else if $breakpoint == desktop {
    @media (min-width: 1200px) { @content; }
  }
}

// Usage
.container {
  padding: 20px;

  @include respond-to(mobile) {
    padding: 10px;
  }

  @include respond-to(desktop) {
    padding: 40px;
  }
}

このミックスインを使用すると、「モバイル」や「デスクトップ」などの単純な名前を使用するだけでブレークポイントを処理できます。

2. ボタンスタイルミックスイン

ボタンの作成は繰り返し行われる場合があります。このミックスインを使用すると、他のスタイルを同じにしながら、異なる色のボタンを作成できます。

@mixin button($bg-color, $text-color: #fff) {
  background-color: $bg-color;
  color: $text-color;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.3s ease;

  &:hover {
    background-color: darken($bg-color, 10%);
  }
}

// Usage
.button-primary {
  @include button(#007BFF);
}

.button-secondary {
  @include button(#6C757D);
}

たった 1 行のコードでボタンをすばやく作成し、必要に応じて色を調整できるようになりました。

3. タイポグラフィミックスイン

タイポグラフィはどの Web サイトにとっても重要です。このミックスインを使用すると、わずか数行のコードでレスポンシブ タイポグラフィをセットアップできます。

@mixin typography($font-size, $line-height: 1.5, $weight: normal) {
  font-size: $font-size;
  line-height: $line-height;
  font-weight: $weight;

  @include respond-to(mobile) {
    font-size: $font-size * 0.9;
  }

  @include respond-to(desktop) {
    font-size: $font-size * 1.1;
  }
}

// Usage
h1 {
  @include typography(32px, 1.2, bold);
}

p {
  @include typography(16px);
}

このミックスインは、小さい画面でも大きい画面でもフォント サイズが適切に表示されるようにするのに役立ちます。

4. レム単位の関数

この関数は px 値を rem に変換し、コードをさまざまなデバイスに合わせて拡張しやすくします。

@function px-to-rem($px, $base-font-size: 16px) {
  @return $px / $base-font-size * 1rem;
}

// Usage
.container {
  padding: px-to-rem(32);
}

ピクセルをレム単位に手動で変換する代わりに、この関数を使用して自動的に変換できます。

5.色調整機能

すぐに色を変更する必要がありますか?この関数は、入力に基づいて色を暗くしたり明るくしたりします。

@function adjust-color-brightness($color, $amount) {
  @if $amount > 0 {
    @return lighten($color, $amount);
  } @else {
    @return darken($color, abs($amount));
  }
}

// Usage
.header {
  background-color: adjust-color-brightness(#007BFF, -10%); // Darker blue
}

この機能を使用すると、ホバー効果やテーマに最適な、明るいまたは暗い色の色合いを簡単に作成できます。

6. グリッドレイアウトミックスイン

このミックスインを使用すると、グリッド レイアウトの作成が簡単になります。列の数と列間のスペースを設定できます。

@mixin grid-layout($columns: 3, $gap: 20px) {
  display: grid;
  grid-template-columns: repeat($columns, 1fr);
  grid-gap: $gap;
}

// Usage
.grid {
  @include grid-layout(4, 30px);
}

このミックスインを使用すると、列とギャップの数をカスタマイズできるため、グリッド レイアウトの作成プロセスが簡素化されます。

結論:

SCSS のミックスインと関数は、よりクリーンで効率的な CSS を作成するのに役立ちます。わずか数行のコードを書くだけで、スタイルをより柔軟にし、保守しやすくすることができます。レスポンシブなデザイン、ボタン、または動的レイアウトを作成する場合でも、SCSS ミックスインと関数を使用すると、開発者としての作業が容易になります。次のプロジェクトで試してみてください!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/tomasdevs/make-your-css-better-with-scss-mixins-and-functions-133e?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>
  • PHP は匿名関数をパラメータとして渡すことができますか?
    PHP は匿名関数をパラメータとして渡すことができますか?
    PHP で関数をパラメータとして渡すPHP では、PHP 5.3 での匿名関数の導入により、関数をパラメータとして受け入れる機能が有効になりました。 0以上。これにより、より動的でモジュール化されたプログラミングの可能性が広がります。匿名関数を使用すると、名前なしで関数を定義できます。これらは多くの...
    プログラミング 2024 年 11 月 8 日に公開
  • WebページをESPまたは簡易プログラマブルコントローラにダウンロードします。
    WebページをESPまたは簡易プログラマブルコントローラにダウンロードします。
    WebページをESP8266のFLASHに保存するために、delphiで特別にソフトウェアツールを作成しました。 このソフトウェア ツールは、1 つのフォルダーからすべての Web ページ ファイル (html、css、js、画像などを含む) を読み取り、それらをバイナリ ファイルにパッケージ化しま...
    プログラミング 2024 年 11 月 8 日に公開
  • データを保護: ハッキングできない SQL および MySQL データベースのコピーを作成する方法
    データを保護: ハッキングできない SQL および MySQL データベースのコピーを作成する方法
    ロック前の計画を慎重に行うことで、SQL または MySQL データベースが読み取り専用ステータスに変換された後も、意図したとおりに機能し、指定されたユーザー グループが引き続きアクセスできることが保証されます。この先見の明により、将来更新や変更が必要になった場合に、データベースのロックを安全に解除...
    プログラミング 2024 年 11 月 8 日に公開
  • nuxt 3 のインターセプターとログを使用したカスタムフェッチ
    nuxt 3 のインターセプターとログを使用したカスタムフェッチ
    Nuxt を使用したことがある場合は、便利な useFetch コンポーザブルに遭遇したことがあるでしょう: <script setup lang="ts"> const { data, status, error, refresh, clear } = await useFetch('...
    プログラミング 2024 年 11 月 8 日に公開
  • React ソースコードでの MessageChannel の使用法
    React ソースコードでの MessageChannel の使用法
    この記事では、React ソース コードでの MessageChannel の使用状況を分析します。 まず、MessageChannel とは何かを理解しましょう。 メッセージチャンネル チャネル メッセージング API の MessageChannel インターフェイスを使用すると...
    プログラミング 2024 年 11 月 8 日に公開
  • CSS で後続のラップされたラベル行をインデントするにはどうすればよいですか?
    CSS で後続のラップされたラベル行をインデントするにはどうすればよいですか?
    折り返されたラベル テキストの後続の行をインデントするフォームの幅に制約がある場合、ラベル テキストが複数の行に折り返される可能性があり、美観が損なわれる可能性があります。懸念事項。 input 要素の存在により最初の行はインデントされますが、後続の行はインデントされず、不均一な外観が作成されます。...
    プログラミング 2024 年 11 月 8 日に公開
  • コンテンツをぼかさずにCSSで背景画像をぼかす方法
    コンテンツをぼかさずにCSSで背景画像をぼかす方法
    コンテンツの明瞭さを維持しながら背景画像を CSS でぼかすCSS 設定で背景画像をぼかそうとすると、一般的に次のような問題が発生します。コンテンツ (テキストまたはその他の要素) もぼやける問題。ここで、z-index と擬似要素の概念が登場します。コンテンツに影響を与えずに背景画像をぼかすには、...
    プログラミング 2024 年 11 月 8 日に公開
  • バカ
    バカ
    こんにちは、私は DOOF の唯一の作成者、Misti-sage です: 動的 出力 向けに最適化 柔軟性。 (私はコーディングの初心者なので、すべてではないにしても、私の DOOF 作業のほとんどは ChatGPT によって支援されました。) Darfensmirg としても知られる DOOF ...
    プログラミング 2024 年 11 月 8 日に公開
  • Go Regex \\b Boundary がラテン文字で失敗するのはなぜですか?
    Go Regex \\b Boundary がラテン文字で失敗するのはなぜですか?
    \b Go 正規表現におけるラテン文字の境界Go 正規表現の世界では、\b 境界オプションには少し癖があります。ラテン文字を扱う場合。この問題は、アクセント付き母音や特殊文字などのラテン文字を含む単語を定義しようとするときに発生します。次の例を考えてみましょう。\b 境界オプションを使用して単語 &...
    プログラミング 2024 年 11 月 8 日に公開
  • Node.js での WebSocket および Socket.IO とのリアルタイム通信
    Node.js での WebSocket および Socket.IO とのリアルタイム通信
    現代の Web アプリケーションでは、チャット システム、ライブ アップデート、共同編集、通知など、リアルタイムの通信が必要になることがよくあります。従来の HTTP 通信は、要求と応答のパターンに依存しているため、リアルタイム アプリケーションには不十分です。ここで WebSocket が登場し、...
    プログラミング 2024 年 11 月 8 日に公開
  • H2 と HSQLDB: 財務管理アプリにはどちらの組み込みデータベースが最適ですか?
    H2 と HSQLDB: 財務管理アプリにはどちらの組み込みデータベースが最適ですか?
    Java 組み込みデータベースの比較利用可能なオプションが多数あるため、財務管理アプリケーション用の組み込みデータベースを選択するのは難しい場合があります。支援するために、要件に基づいて H2、HSQLDB、Derby、および Berkeley DB を比較してみましょう。H2 と HSQLDBH2...
    プログラミング 2024 年 11 月 8 日に公開
  • C ではポインタ間接参照は何レベルまで許可されますか?
    C ではポインタ間接参照は何レベルまで許可されますか?
    C のポインタの深さ: レベル制限について理解するC プログラミングでは、ポインタを使用して変数に複数レベルの間接参照を持たせることができます。この柔軟性により、複雑なデータ構造と効率的なメモリ管理が可能になります。ただし、次のような疑問が生じます: 1 つの変数に許可されるポインター レベル (「...
    プログラミング 2024 年 11 月 8 日に公開
  • CORS はどのようなエラーを防ぎますか: 「Origin は Access-Control-Allow-Origin によって許可されていません」
    CORS はどのようなエラーを防ぎますか: 「Origin は Access-Control-Allow-Origin によって許可されていません」
    CORS によって防止されるエラー:「Origin は Access-Control-Allow-Origin によって許可されていません」はじめに:クロスオリジンリソース共有中に「Origin is not allowed by Access-Control-Allow-Origin」エラーが発生...
    プログラミング 2024 年 11 月 8 日に公開
  • 光沢と輝きで心拍数が下がります - ケーススタディ
    光沢と輝きで心拍数が下がります - ケーススタディ
    最近、クライアントから、Wordpress サイト上の「財務評価」JavaScript アプリが動作しなくなったと相談を受けました。問題が山ほどありましたが、最終的には再構築するのが最も簡単な方法でした。 このアプリでは、ユーザーは基本的な財務情報と個人情報を入力でき、アプリは財務計画の観点から正し...
    プログラミング 2024 年 11 月 8 日に公開
  • ケーススタディ: 加重九尾問題
    ケーススタディ: 加重九尾問題
    重み付き九尾問題は、重み付き最短経路問題に還元できます。 セクションでは、九尾問題を提示し、BFS アルゴリズムを使用してそれを解決しました。このセクションでは、問題のバリエーションを示し、最短パス アルゴリズムを使用して解決します。 九尾問題は、すべてのコインが下になる最小の手数を見つけることです...
    プログラミング 2024 年 11 月 8 日に公開

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3