Sassを使う上での基本的なことを色々試してみたいと思います。
サンプルの出力後のCSSはこちら
ファイル分割
実際のコードの書き方の前に、ファイルの分割を行ってみます。
コンパイルを行うファイルをstyle.scss、style.scssに読み込ませるファイルを_sample.scssとします。
分割するSCSSファイルは頭文字に「_」を付けて、コンパイルを行われないようにします。
Sass(style.scss)
/* sample01 */ @import "sample/_sample01";
@import “filename”; で分割ファイルを読み込みます。
読み込む際は「.scss」を省略できます。
Sass(_sample01.scss)
#page {
width: 100%;
.inner {
width: 960px;
margin: 0 auto;
}
}
分割先のファイルは通常のSCSSで記述します。
CSS(style.css)
/* sample01 */
#page {
width: 100%;
}
#page .inner {
width: 960px;
margin: 0 auto;
}
コンパイルを実行すると、_sample01.scssはstyle.scss内に読み込まれ、まとめてstyle.cssとして出力されます。
style.scssのサンプル
style.cssのサンプル
Sample01(ネスト)
入れ子でCSSを記述する事ができます。
Sass(_sample01.scss)
#page {
width: 100%;
.inner {
width: 960px;
margin: 0 auto;
}
}
CSS
#page {
width: 100%;
}
#page .inner {
width: 960px;
margin: 0 auto;
}
Sample02(参照)
「&」を使うことで親セレクタを参照できます。
「&:after」のようにして疑似要素や疑似クラスを使用する方法、ページ毎にclass名を付けておき、「.class名 &」のようにして特定のページだけ別にスタイルを指定したい場合などに便利です。
Sass(_sample02.scss)
.header {
width: 100%;
&:after {
content: "";
display: block;
clear: both;
}
.top & {
margin-bottom: 20px;
}
& &-logo {
float: left;
}
}
CSS
.header {
width: 100%;
}
.header:after {
content: "";
display: block;
clear: both;
}
.top .header {
margin-bottom: 20px;
}
.header .header-logo {
float: left;
}
「& &-logo」のように複数回使用することもできます。
_sample02.scssのサンプル
Sample03(変数)
「$変数名: 値;」とすることで変数として扱えます。
画像パスなどを扱う場合、変数とそうでない部分の区別がつかなくなるので、「#{$変数名}」のようにして変数とそうでない部分を分かるようにします。
Sass(_sample03.scss)
$font_color: #333;
$img_path: "img/common/";
.footer {
color: $font_color;
background: url(#{$img_path}sample.jpg);
}
CSS
.footer {
color: #333;
background: url(img/common/sample.jpg);
}
Sample04(media query)
media queryを使用する場合、変数を使ってサイズ管理を行うと便利です。
Sass(_sample04.scss)
$pc_width: 960px;
#sub {
width: auto;
padding: 0 10px;
@media screen and (min-width:$pc_width) {
float: right;
width: 220px;
padding: 0;
}
}
CSS
#sub {
width: auto;
padding: 0 10px;
}
@media screen and (min-width: 960px) {
#sub {
float: right;
width: 220px;
padding: 0;
}
}
Sample05(mixin)
プロパティのまとまりを「@mixin ミックスイン名{}」のようにまとめておくことで、指定したセレクタ内で読み込ませることができます。
Sass(_sample05.scss)
@mixin dib {
display: inline-block;
*display: inline;
*zoom: 1;
}
.list {
text-align: center;
li {
@include dib;
margin: 0 10px 10px 0;
}
}
CSS
.list {
text-align: center;
}
.list li {
display: inline-block;
*display: inline;
*zoom: 1;
margin: 0 10px 10px 0;
}
Sample06(extend)
「@extend セレクタ名」とすることで、一度使用したセレクタの記述をまとめることができます。
Sass(_sample06.scss)
.clearfix {
*zoom: 1;
&:after {
content: "";
display: block;
clear: both;
}
}
.photo {
@extend .clearfix;
}
CSS
.clearfix, .photo {
*zoom: 1;
}
.clearfix:after, .photo:after {
content: "";
display: block;
clear: both;
}
Sample07(演算)
数値の演算を行えます。
Sass(_sample07.scss)
$contents_width: 960px;
#contents {
width: $contents_width - 20;
padding: 0 10px;
}
CSS
#contents {
width: 940px;
padding: 0 10px;
}
【参考サイト】
コメントが承認されるまで時間がかかります。