検索

データ型はほぼすべてのプログラミング言語にあり、Sass も例外ではありません。データ型はさまざまな用途に応じて分類されます。たとえば、2 は数値 (number)、SitePoint は文字列 (string) です。この記事では、Sass のすべてのデータ型 (合計 7 つのデータ型) を取り上げ、いくつかの簡単な例を通してこれらのデータ型が Sass でどのように使用されるかを説明します。

Null

null は、Sass の最も基本的なデータ型であり、true も false もありませんが、empty を表します。それには価値がありません。 null のバリアントは、文字が含まれていないものであっても、空とは見なされないことを知っておく必要があります。これは、 NULL または Null が実際には null であり、両方とも文字列であることも意味します。

null は何も意味しませんが、length(..) を使用すると長さ 1 が返されます。これは、null は依然として実際のエンティティを表しますが、何も表していないためです。同様に、他の文字列を連結するために null を使用することはできません。このため、 text + null を使用すると、Sass のコンパイル時にエラーが発生します。

Booleans

このデータ型には、 true と false の 2 つの値のみがあります。 Sass では、false と null のみが false を返し、それ以外はすべて true を返します。たとえば、次のようになります。

$i-am-true: true;$a-number: 2;body {  @if not $i-am-true {    background: rgba(255, 0, 0, 0.6);  } @else {    background: rgba(0, 0, 255, 0.6); // expected  }}.warn {  @if not $a-number {    color: white;    font-weight: bold;    font-size: 1.5em;  } @else {    display: none; // expected  }}

ここでは、2 つの変数 $i-am-true と $a が -number として使用されます。コードを説明する前に、Sass の not 演算子は他の言語と同様に機能します。したがって、 @if not $i-am-true は if (!$i-am-true) と同等です。 $i-am-true の値が true であるため、最終的な値は false になります。これにより、青色の背景色が生成されます。

前に述べたように、 null と false を除くすべてが true です。これは、 $a-number が true に等しいことを意味するため、 .warn クラス名を持つ段落 ( p ) は表示されません。以下の効果がわかります:

数値

数値は CSS で広く使用されており、そのほとんどは CSS ユニットと組み合わせて使用​​されますが、技術的には依然として数値とみなされます。同様に、Sass にも数値型 (Number) があります。このようにして、基本的な計算を行うことができます。

覚えておくべきことの 1 つは、これは次のような数値と互換性のある単位を操作している限り有効であるということです。

$size: 18;                  // A number$px-unit: $size * 1px;      // A pixel measurement$px-string: $size + px;     // A string$px-number: $px-unit / 1px; // A number

上記のコードは 4 つの変数を宣言しています。 $size は数値です。 $px-unit は、$size に 1px を掛けて、サイズの測定値に変換します。 $px-string を単位 px に追加すると、18px に変換され、数値ではなく文字列になります。これは主に、Sass では px 自体が文字列とみなされ、数値と文字列を加算すると文字列になるためです。 $px-number は、$px-unite を使用して 1px で除算され、数値 18 に戻ります。

たとえば、次の例では、これらの変数が .button スタイルで使用されています。

.button {   background: rgba(255, 0, 0, $px-number * 3 / 100);   padding: $px-unit / 2;   border-radius: $px-string * 3; // throws error   margin-top: $px-number * 2px;}

上記のコードでは、背景は rgba(255, 0, 0, .54)、パディングは9pxに等しい。ただし、border-radius は文字列と数値を操作できないため、エラーが報告されます。たとえば、次のデモに示すように:

文字列

CSS では、文字列はフォント スタイルやその他の属性スタイルによく使用されます。 Sass の文字列は CSS と同じです。一重引用符 ('') または二重引用符 ("") で囲まれたものも文字列です。ただし、'' または "" が使用されていない場合、Sass では文字列とみなされず、実際の使用時に特定のエラーが発生することに注意することが重要です。たとえば、次の例:

$website: 'SitePoint'; // Stores SitePoint$name: 'Gajendar' + ' Singh'; // 'Gajendar Singh'$date:  'Month/Year : ' + 3/2016;// 'Month/Year : 3/2016'$date:  'Month/Year : ' + (3/2016);// 'Month/Year : 0.00149' // This is because 3/2016 is evaluated first.$variable: 3/2016;      // Evaluated to 0.00149$just-string: '3/2016'; // '3/2016'

$name は文字列を格納します。興味深いことに、2 番目の宣言では 3/2016 は計算されず、文字列として扱われます。これは、文字列を他のデータ型と連結することもできることを意味します。ただし、文字列を null と連結することはできません。

3 番目の宣言では、$variable は文字列の代わりに 3/2016 を直接計算します。これは主に、他の文字列が連結されていないためです。変数 $variable に 3/2016 のような内容を文字列として格納したい場合は、後で宣言する変数 $just-string のように引用符 (一重引用符または二重引用符) で囲む必要があります。

文字列内で変数を使用する場合、その変数を直接文字列にしたくない場合は、変数を補間するには、呼び出された変数を使用する必要があります。簡単に言えば、#{} を使用して変数をラップします。簡単な例を見てみましょう:

$name: 'Gajendar';$author: 'Author : $name'; // 'Author : $name'$author: 'Author : #{$name}';// 'Author : Gajendar'

補間方法は、一部の条件文で変数を使用する場合に特に便利です。たとえば、次の例は次のとおりです。

Colors

CSS カラー表現は、色の 16 進記号、rgb、rgba、hsl、hsla やキーワード (ピンク、ブルーなど)など。 Sass は主に、色をより効果的に使用できるようにするための追加機能を提供します。たとえば、Sass で色の値を追加できます。

例:

$color: yellowgreen;            // #9ACD32color: lighten($color, 15%);    // #b8dc70color: darken($color, 15%);     // #6c9023color: saturate($color, 15%);   // #a1e01fcolor: desaturate($color, 15%); // #93ba45color: (green + red);           // #ff8000

如果你想让我解释Sass是如何计算颜色的。我在这里只能简单的告诉你,Sass具有分离颜色的所有通道,然后对应的颜色通道进行运算。比如在这个示例中, red 颜色对应的十六进制值是 #ff0000 , green 颜色对应的十六进制值是 #008000 ,把他们添加到一起就是 #ff8000 。另外不能使用这样的方法来计算颜色的透明( α )通道的值。

有关于Sass颜色更详细的介绍可以阅读这篇文章。

下面这个案例演示了Sass颜色功能,比如 lighten() 和 darken() 等:

Lists

如果你熟悉其他语言中的数组的话,那么理解Sass中的列表就不会有困难。列表其实就是Sass中的数组,它可以包含零个、一个或多个值,甚至是还可以包含多个子列表。在列表中创建不同的值时,你只需要使用空格或逗号分隔开就行,如下所示:

$font-list: 'Raleway','Dosis','Lato';// Three comma separated elements$pad-list: 10px 8px 12px;// Three space separated elements$multi-list: 'Roboto',15px 1.3em;// This multi-list has two lists.

上面的代码阐述的已很清楚,你可以在列表中存储多种类型的值。前两个列表各有三个元素,而后面的 $multi-list 列表中两个元素用逗号分隔开,这意味着,第一个元素是字符串 Roboto ,而第二个元素是另一个列表( $multi-list 的子列表),并且这个子列表包含两个元素,这两个元素是使用空格符分隔开的。也就是说,使用不同的分隔符在同一个列表中可以创建一个嵌套列表。

当列表和循环一起使用的时候,可以证明列表是非常有用的,比如下面的示例:

上面的示例,我使用了 nth($list,$n) 函数演示了如何得到列表中的第几个列表项。其实列表具有的功能特性远不止这些,如果你想了解有关于更多的特性,可以 阅读这篇文章 。

Maps

Sass中的Map其实就是类似于关联数组,常常以 key/value 对键值出现。Map必须用括号( () )括起来,每对键值之间使用逗号分隔。在Map中,一个给定的 key 只能有一个相关的 value ,但一个给定的 value 可以被映射到许多不同的 key 上。另外,在Map中映射给 key 的值 value 可以是任何数据类型,包括Map。如下面的示例所示:

$styling: (  'font-family': 'Lato',  'font-size': 1.5em,  'color': tomato,  'background': black);h1 {  color: map-get($styling, 'color');  background: map-get($styling, 'background');}

上面的示例创建了一个名为 $styling 的 map ,这个Map中对应的键值是用来定义不同的CSS属性。

Sass中的Map有 很多不同的函数功能 ,可以使用它们可以操作Map或提取值。比如这里使用的 map-get 函数,它接受两个参数,第一个是Map的名称 $styling ,第二个是你想需要取的值的 key 值。

在Sass中也可以对Map中的 key/value 做遍历,比如:

总结

Sass数据本身在Sass中似乎并不怎么有用,但是将其和Sass提供的其他功能在特定的时间,特定的场合一起使用,还是可以创造奇迹的。

另外,Sass中的List和Map相对于其他数据类型来说要复杂的说,在这篇文章只是简单的给大家提了一下这方面的概念,后面我们将会为大家提供有关于这方面更详细的教程。如果您有任何关于Sass数据类型的问题,欢迎在下面的评论中给我们留言。

本文根据 @Gajendar Singh 的《 Data Types in Sass 》所译,整个译文带有我们自己的理解与思想,如果译得不好或有不对之处还请同行朋友指点。如需转载此译文,需注明英文出处: http://www.sitepoint.com/data-types-in-sass/ 。

大漠

常用昵称“大漠”,W3CPlus创始人,目前就职于手淘。中国Drupal社区核心成员之一。对HTML5、CSS3和Sass等前端脚本语言有非常深入的认识和丰富的实践经验,尤其专注对CSS3的研究,是国内最早研究和使用CSS3技术的一批人。CSS3、Sass和Drupal中国布道者。2014年出版《 图解CSS3:核心技术与案例实战 》。

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

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

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

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

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

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 08, 2025 pm 07:05 PM

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

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

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

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

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

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。