Sass 変数、nested_html/css_WEB-ITnose

Jun 24, 2016 am 11:33 AM

変数を宣言する
変数を定義するための構文
Sass 変数には 3 つの部分が含まれます:
変数を宣言するための記号「$」
変数名
変数に代入される値
の色を想定した簡単な例ボタンに対していくつかの変数を宣言できます:

1 $brand-primary : darken(#428bca, 6.5%) !default;/* #337ab7*/2 $btn-primary-color : #fff !default;3 $btn-primary-bg : $brand-primary !default;4 $btn-primary-border : darken($btn-primary-bg, 5%) !default;5 /*如果值后面加上!default则表示默认值。*/
ログイン後にコピー

通常の変数とデフォルト変数
通常の変数
は定義後にグローバルスコープで使用できます

1 $fontSize: 12px;2 body{3  font-size:$fontSize;4 }
ログイン後にコピー

コンパイルされた CSS コード:

1 body{2  font-size:12px;3 }
ログイン後にコピー

デフォルト変数
sass のデフォルト変数は、値の後に !default を追加するだけです。

1 $baseLineHeight:1.5 !default;2 body{3  line-height: $baseLineHeight;4 }
ログイン後にコピー

コンパイルされた CSS コード:

1 body{2  line-height:1.5;3 }
ログイン後にコピー

通常、sass のデフォルト変数はデフォルト値を設定し、必要に応じて上書きするために使用されます。上書きする方法も非常に簡単です。デフォルト変数の前に宣言してください。変数をダウンロードするだけです。

1 $baseLineHeight: 2;2 $baseLineHeight: 1.5 !default;3 body{4  line-height: $baseLineHeight; 5 }
ログイン後にコピー

コンパイルされた CSS コード:

1 body{2  line-height:2;3 }
ログイン後にコピー

コンパイルされた行の高さがデフォルトの 1.5 ではなく 2 になっていることがわかります。デフォルト変数の値は、コンポーネント開発を行うときに非常に役立ちます。

ローカル変数とグローバル変数
同じ名前のグローバル変数がすでに存在する場合、バージョン 3.4 以降、Sass はすでにスコープの概念を正しく処理し、代わりに新しいローカル変数を作成できます。
グローバル変数とローカル変数

 1 /*SCSS*/ 2 $color: orange !default;/*定义全局变量(在选择器、函数、混合宏...的外面定义的变量为全局变量)*/ 3 .block { 4  color: $color;//调用全局变量 5 } 6 em { 7  $color: red;//定义局部变量 8  a { 9  color: $color;//调用局部变量10     }11 }12 span {13  color: $color;//调用全局变量14 }
ログイン後にコピー

css 結果:

 1 /*CSS*/ 2 .block { 3  color: orange; 4 } 5 em a { 6  color: red; 7 } 8 span { 9  color: orange;10 }
ログイン後にコピー

要素内で定義された変数は、他の要素に影響を与えません。次のコードに示すように、グローバル変数 は要素の外部で定義された変数であることが簡単に理解できます。

$color:orange !default;
ログイン後にコピー

$color はグローバル変数ですが、$color:red などの要素の内部で定義された変数です。はローカル変数です。
グローバル変数のシャドウ
グローバル スコープに既に存在する変数がローカル スコープ (セレクター内、関数内、ミックスイン内など) で宣言されると、ローカル変数は グローバル変数のシャドウになります。変数。基本的に、ローカル変数はローカル スコープ内のグローバル変数のみをオーバーライドします。
上記の例の em セレクター内の変数 $color は、グローバル変数のシャドウです。

 1 /*SCSS*/ 2 $color: orange !default;//定义全局变量 3 .block { 4  color: $color;//调用全局变量 5 } 6 em { 7  $color: red;//定义局部变量(全局变量 $color 的影子) 8  a { 9  color: $color;//调用局部变量10     }11 }
ログイン後にコピー

変数をいつ宣言するか?
推奨事項: 必要だと思われる場合にのみ変数を作成してください。ハックのためだけに新しい変数を宣言しないでください。何も効果がありません。新しい変数は、次の条件がすべて満たされた場合にのみ作成できます:
1. 値が少なくとも 2 回繰り返し出現する;
2. 値は少なくとも 1 回更新される可能性がある;
3. 値のすべてのパフォーマンスは変数に関連する。 (一致しません)。
4. 基本的に、更新する必要がない変数、または 1 か所でのみ使用される変数を宣言する理由はありません。

ネスト - セレクターのネスト
Sass はセレクターのネスト機能も提供しますが、これは Sass でのネストが制御できないという意味ではありません。ネストするため、レベルが深くなるほど、コンパイルされた CSS のセレクター レベルも深くなります。
Sassのネスティングは3種類に分かれます:
セレクターのネスティング
属性のネスティング

1.セレクターのネスト 次のような構造があるとします。ヘッダーの a タグを選択したい場合、CSS を記述するときは次のように記述します。

1 <header>2     <nav>3         <a href=“##”>Home</a>4         <a href=“##”>About</a>5         <a href=“##”>Blog</a>6     </nav>7 <header>
ログイン後にコピー

次に、Sass では、セレクターのネストを使用できます。

ネスト - 属性のネスト

Sass は属性のネストも提供します。CSS には同じプレフィックスを持つ異なるサフィックスを持つ属性がいくつかあります。たとえば、border-top/border-Right、これと同様に、margin、padding、などの属性があります。そしてフォント。

例:

re re re re

は SASS で次のように記述できます:




擬似ネストと属性ネスト「&」記号と一緒に使用する必要があります。
古典的な「clearfix」を例に挙げます:

1 nav a {2  color:red;3 }4 header nav a {5  color:green;6 }
ログイン後にコピー

コンパイルされた CSS:

1 nav {2  a {3  color: red;4 5  header & {6  color:green;7         }8  } 9 }
ログイン後にコピー

セレクターのネストを避ける:
セレクターのネストに関する最大の問題は、最終的なコードが読みにくくなることです。開発者は、さまざまなインデント レベルでのセレクターの特定のパフォーマンス効果を計算するために多大な労力を費やす必要があります。
セレクターが具体的であればあるほど、宣言ステートメントはより冗長になり、最も近いセレクターへの参照 (&) がより頻繁に行われます。ある時点で、セレクター パスを混乱させたり、次のレベルのセレクターを探索したりすることによる高いエラー率は、まったく価値がありません。
そのような状況を防ぐために、セレクターのネストをできるだけ避ける必要があります。ただし、この措置に対応できるケースは明らかに少数です。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTML:構造、CSS:スタイル、JavaScript:動作 HTML:構造、CSS:スタイル、JavaScript:動作 Apr 18, 2025 am 12:09 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの未来:ウェブデザインの進化とトレンド HTMLの未来:ウェブデザインの進化とトレンド Apr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML、CSS、およびJavaScriptの未来:Web開発動向 HTML、CSS、およびJavaScriptの未来:Web開発動向 Apr 19, 2025 am 12:02 AM

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

See all articles