Sass勉強会の大雑把な内容(2016.5.15)

勉強会にあたって、下記の書籍を購入しました。
Sassを書いてみたい方にとてもオススメです。
Web制作者のためのSassの教科書
サポートサイトで書籍の正誤表やサンプルソースを見られます→http://book.scss.jp

さて、勉強会のために、下記のページを作りました。
http://www.ccc-labo.net/_demo/sass_lesson1/local/
このページを作る際に書いたSassを例にしてSassの基本的な書き方を確認していきました。

なお、コンパイル結果を確認するために、ウェブツールを使いました。
SassMeister→http://www.sassmeister.com

最初に、Sassの使い所がイマイチない、という話をした。そもそもCSSを書くときの管理方についても明文化できていないのに、Sassを使って効率化、という段階にない、とか、自分がSassで書くと他の人に引継ぎができないとか。そもそも、プログラムアレルギーが強くて馴染めない、などなど。

これらは私がSassを遠ざけた理由そのままだったので、とても納得なのだが、改めてSassをいろいろいじってみると・・・・・・まあ、圧倒的に便利な部分がある。例えば変数とかは使いたくてたまらない。コンパイルとか、環境を作ることがまず大変ですが。。。(苦労しました)
この苦労と、書き方を覚える労力をかけるのと、今まで通りCSSをサクサク書くのと効率としてはトントンかもなあ、という思いがSass導入を遠ざけていたわけです(個人的に)。
しかし、勉強会を機に、一旦コンパイルする環境まで作ってしまえば、逆にこう思った。

「Sassのファイル内でいつも通りCSS書いたらそれは単純にCSSとして書き出されるだけなんだし、Sassの便利なところ、書ける!と思うことだけ取り入れたらええやん。」

と、いうわけなので、楽しいです、Sass。
紹介した書き方が下記です。カキカキ。

入れ子

.entry-header {
	.entry-title {
		font-weight: 300;
		text-align: center;
	}
}


.main-navigation {
		
	ul {
		padding: 0;
		margin: 0;
		text-align: center;
			
		li {
			display: inline-block;
			margin-right: 10px;
			line-height: 1;
			
			a {
				display: block;
				padding: 7px 10px;
				background-color: #333;
				color: #fff;
				text-decoration: none;
				transition: opacity 0.5s ease-in;
				opacity: 1;
					
				&:hover {
					opacity: 0.6;
					transition: opacity 0.5s ease-in;
				}
			}
			
			&:last-child {
				margin-right: 0;
			}
		}
	}
}

 

変数

$window_medium : 600px;
$window_large : 1200px;

$keycolor : #007099;

 

計算と繰り返し
@for関数を使って、繰り返しの処理を書く。

$grid_margin : 2%;/*単位は%*/
$grid_width : ( 100 - $grid_margin * 5 ) / 6;

@for $i from 1 through 6 {
		.grid-small-#{$i} {
			width: ($grid_margin * ($i - 1) + $grid_width * $i);
		}
	}

 

色の計算
キーカラーから派生させた背景色を作る。こうするとトーン配色を守った色使いが考えやすい。

$keycolor : #007099;

.main-visual {
	text-align: center;
	background-color: mix($keycolor,#EEE, 10%);
	padding-top: 40px;
	margin-bottom: 30px;
}

 

@extendの例
同じ処理をまとめるために使う。ただ、後に紹介する@mixinの方がSassで書くものとコンパイルの結果の違和感が少ないよね、という意見もあった。(私もちょっと苦手)

%btnBase {
border-radius:3px;
background-color: #333;
color:#fff;
}

.btn {
@extend %btnBase;
padding: 9px;
}



.item {
@extend .btn;
margin-left:10px;
}

.item2 {
@extend %btnBase;
margin-left:10px;
padding: 4px;
}

ミックスイン
@mixin関数。これは本当に便利だ。
@include kadomaru(); のカッコ内には角丸のサイズを入れることで、変更ができるので試してみてほしい。
例 @include kadomaru(10px);

@mixin iblockHack {
	display: inline-block;
	*display: inline;
	*zoom: 1;
}

@mixin kadomaru($value: 4px) {
	-moz-border-radius: $value;
	-webkit-border-radius: $value;
	border-radius: $value;
}

li {
				@include iblockHack;
				margin-right: 10px;
				line-height: 1;
a {
					display: block;
					padding: 7px 10px;
					@include kadomaru();
}
}

 

ミックスイン複数の値
複数の値をとることも可能。角丸のサイズとパディングの値を変数にしておくと、これひとつで角丸のあるボタンやボックスの調整がたった1行書くだけでできるようになる。

@mixin kadomaruBox($value1: 4px,$value2: 10px) {
	-moz-border-radius: $value1;
	-webkit-border-radius: $value1;
	border-radius: $value1;
padding: $value2;
display: block;
}

a {
@include kadomaruBox(10px,30px);
}

以下、勉強会の時に出てきた質問などについて少し調べておいたので、書き留めておきます。

コンパイルされたCSSの改行とかタブの入り方が気にくわない、修正したい!
こんな記事見つけました。やっぱり思っている人はいた。
http://www.ysakmrkm.com/2012/10/customize_output_format_compiled_by_sass.html
根本的な解決にならない、って書いてあるけど、どうじゃろ、ruby詳しい人に聞けばいいのかな・・・。

Macでの環境構築について
El Captainになって、OSのシステム系のファイルにルート権限でもアクセスできなくなったそうな(すみません、細かいことはよくわかっていません)。
で、Macは標準でRubyが入っているからそっち使ってもいいよ、という感じでやってみようとしたんですが、失敗しまくり。色々やりすぎて何をどうしたのかあまり覚えてもいない・・・・・。
この辺りが参考になる気がします。
https://teratail.com/questions/23280

compassを使う
勉強会の際に使っていたMacBookではできなかったのですが、自宅のiMacでは普通に使えたので、頭を抱えています。バージョンとかも変わらないのですが・・。
ただ、iMacの環境では、compass watchがなんだかうまくいってない風・・・・。謎です。。。。。
これについてはまた何かわかったら書きます。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です