Sass_Grunt/Sass Casual Talks at IPROS

158
Sass Misako Itoi Let’s 14129日水曜日

description

Grunt/Sass Casual Talks at IPROS (2014.01.29) のスライド。

Transcript of Sass_Grunt/Sass Casual Talks at IPROS

Page 1: Sass_Grunt/Sass Casual Talks at IPROS

SassMisako Itoi

Let’s

14年1月29日水曜日

Page 2: Sass_Grunt/Sass Casual Talks at IPROS

自己紹介

•名前:糸井 美紗子

•現在:HTMLコーダー(前職は旅行用品ECサイトのWebデザイナー)

•twitter:@misako826

•IT/Web Meetup!主催やってます..ヾ(゚∀゚*)ノ

14年1月29日水曜日

Page 3: Sass_Grunt/Sass Casual Talks at IPROS

自己紹介

ここ•名前:糸井 美紗子

•現在:HTMLコーダー(前職は旅行用品ECサイトのWebデザイナー)

•twitter:@misako826

•IT/Web Meetup!主催やってます..ヾ(゚∀゚*)ノ

14年1月29日水曜日

Page 4: Sass_Grunt/Sass Casual Talks at IPROS

Agenda...

•Sassって何...?

•Sassコーディング

14年1月29日水曜日

Page 5: Sass_Grunt/Sass Casual Talks at IPROS

Agenda...

(イプロスでの実例)

•Sassって何...?

•Sassコーディング

14年1月29日水曜日

Page 6: Sass_Grunt/Sass Casual Talks at IPROS

さて、

14年1月29日水曜日

Page 7: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

さて、

14年1月29日水曜日

Page 8: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

14年1月29日水曜日

Page 9: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

Syntactically Awesome Style Sheets

14年1月29日水曜日

Page 10: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

構文に関して、最高にイケてるスタイルシート

14年1月29日水曜日

Page 11: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

CSSメタ言語

14年1月29日水曜日

Page 12: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

CSS Preprocessor

14年1月29日水曜日

Page 13: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

CSSメタ言語...CSS Preprocessor...

14年1月29日水曜日

Page 14: Sass_Grunt/Sass Casual Talks at IPROS

14年1月29日水曜日

Page 15: Sass_Grunt/Sass Casual Talks at IPROS

(´・ω・`)

大丈夫!!

Sassコーディング!

14年1月29日水曜日

Page 16: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

言語を定義する為の言語

14年1月29日水曜日

Page 17: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

言語を定義する為の言語

CSSを定義する為の言語

14年1月29日水曜日

Page 18: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

CSSを生成する為の言語

14年1月29日水曜日

Page 19: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

CSSをベースに、機能拡張したもの!

14年1月29日水曜日

Page 20: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

14年1月29日水曜日

Page 21: Sass_Grunt/Sass Casual Talks at IPROS

他にも、、、

http://roole.org/http://pcss.wiq.com.br/

http://cho45.github.io/tasscss/ http://the-echoplex.net/csscrush/

たくさんありますっ!

14年1月29日水曜日

Page 22: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

CSSを生成する為には変換作業が必要!

Sassなど...↓

14年1月29日水曜日

Page 23: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

変換=コンパイル

CSSを生成する為には変換作業が必要!

Sassなど...↓

14年1月29日水曜日

Page 24: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?ビルドタスク

CodeKit、LiveReload、Compass.app、SCOUT

grunt、Yeoman、Brunch

14年1月29日水曜日

Page 25: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

Gruntが主流に...

14年1月29日水曜日

Page 26: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

後半のセッションをお楽しみに...ヽ(́▽`)/

14年1月29日水曜日

Page 27: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

14年1月29日水曜日

Page 28: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

SassとSCSS14年1月29日水曜日

Page 29: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

.sass,.scss14年1月29日水曜日

Page 30: Sass_Grunt/Sass Casual Talks at IPROS

Sass

• 通常のCSSの文法とはかけ離れたもの

• HAMLというマークアップ言語から派生したもの

http://sass-lang.com/

Sassって何?

14年1月29日水曜日

Page 31: Sass_Grunt/Sass Casual Talks at IPROS

SCSS

• CSSと同じような感覚で記述できる。(CSSファイルの拡張子を変えれば、SCSSとして使える!)

http://sass-lang.com/

Sassって何?

14年1月29日水曜日

Page 32: Sass_Grunt/Sass Casual Talks at IPROS

ul { margin-bottom: 20px;}

ul li { border: 1px solid #000000; float: left;}

css

<li> <li>

20px

<ul>

Sassって何?

14年1月29日水曜日

Page 33: Sass_Grunt/Sass Casual Talks at IPROS

ul margin-bottom: 20px li border: 1px solid #000000 float: left

Sass

<li> <li>

20px

<ul>

Sassって何?

14年1月29日水曜日

Page 34: Sass_Grunt/Sass Casual Talks at IPROS

ul{ margin-bottom: 20px; li{ border: 1px solid #000000; float: left; }}

SCSS

<li> <li>

20px

<ul>

Sassって何?

14年1月29日水曜日

Page 35: Sass_Grunt/Sass Casual Talks at IPROS

Sassって何?

SCSS記法を前提として話をすすめます

今日は

14年1月29日水曜日

Page 36: Sass_Grunt/Sass Casual Talks at IPROS

SCSSコーディング!

LLeett’ss

14年1月29日水曜日

Page 37: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

セレクタのネスト

14年1月29日水曜日

Page 38: Sass_Grunt/Sass Casual Talks at IPROS

ul { margin-bottom: 20px;}

ul li { border: 1px solid #000000; float: left;}

css

<li> <li>

20px

<ul>

Sassコーディング!

14年1月29日水曜日

Page 39: Sass_Grunt/Sass Casual Talks at IPROS

ul{ margin-bottom: 20px; li{ border: 1px solid #000000; float: left; }}

SCSS

<li> <li>

20px

<ul>

Sassコーディング!

14年1月29日水曜日

Page 40: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@mediaもネストしちゃおう!

さらに

14年1月29日水曜日

Page 41: Sass_Grunt/Sass Casual Talks at IPROS

#main-content { float: left; width: 480px;}

@media screen and (max-width:480px) { #main-content { float: none; width: auto; }}

CSS

14年1月29日水曜日

Page 42: Sass_Grunt/Sass Casual Talks at IPROS

#main-content { float: left; width: 480px; @media screen and (max-width:480px){ float: none; width: auto; }}

SCSS

14年1月29日水曜日

Page 43: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 44: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

CSSネスト深過ぎ問題

ただし

14年1月29日水曜日

Page 45: Sass_Grunt/Sass Casual Talks at IPROS

SCSSbody{ .wrapper{ .main-content{ section{ ul{ margin-bottom: 20px; li{ display: inline-block; a{ img{ border: 1px solid #1111cc; } } } } } } }}

14年1月29日水曜日

Page 46: Sass_Grunt/Sass Casual Talks at IPROS

body .wrapper .main-content section ul{ margin-bottom: 20px;}

body .wrapper .main-content section ul li{ display: inline-block;}

body .wrapper .main-content section ul li a img{ border: 1px solid #1111cc;}

CSS

14年1月29日水曜日

Page 47: Sass_Grunt/Sass Casual Talks at IPROS

ファイルサイズが大きくなってしまう

Sassコーディング!

14年1月29日水曜日

Page 48: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

CSS高速化の妨げに...

さらに、

14年1月29日水曜日

Page 49: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

CSS処理の中で、一番時間がかかるのが、子孫セレクタの処理

14年1月29日水曜日

Page 50: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

CSSネスト深過ぎ問題要注意です!

だから......

14年1月29日水曜日

Page 51: Sass_Grunt/Sass Casual Talks at IPROS

プロパティのネスト

Sassコーディング!

NNeexxtt......

14年1月29日水曜日

Page 52: Sass_Grunt/Sass Casual Talks at IPROS

.main{ margin: 0 { left: 10px; right: 10px; bottom: 20px; }}

SCSSSassコーディング!

14年1月29日水曜日

Page 53: Sass_Grunt/Sass Casual Talks at IPROS

.main{ margin: 0 { left: 10px; right: 10px; bottom: 20px; }}

SCSS.main{ margin: 0 ; margin-left: 10px; margin-right: 10px; margin-bottom: 20px;}

CSS

main

20px

10px 10px

Sassコーディング!

14年1月29日水曜日

Page 54: Sass_Grunt/Sass Casual Talks at IPROS

CSSSassコーディング!

.box{ z-index:1000;}

14年1月29日水曜日

Page 55: Sass_Grunt/Sass Casual Talks at IPROS

.box{ z-index:1000;}

CSS.box{ z:{ index: 1000; }}

SCSSSassコーディング!

14年1月29日水曜日

Page 56: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

素敵!14年1月29日水曜日

Page 57: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

アンパサンド

14年1月29日水曜日

Page 58: Sass_Grunt/Sass Casual Talks at IPROS

14年1月29日水曜日

Page 59: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

アンパサンド

14年1月29日水曜日

Page 60: Sass_Grunt/Sass Casual Talks at IPROS

ul { width: 460px;}ul li { float: left; margin-right: 20px; width: 200px;}ul li:last-child { float: left; margin-right: 0; width: 200px;}

CSS

14年1月29日水曜日

Page 61: Sass_Grunt/Sass Casual Talks at IPROS

ul { width: 460px; li { float: left; margin-right: 20px; width: 200px; &:last-child { float: left; margin-right: 0; width: 200px; } }}

SCSS

14年1月29日水曜日

Page 62: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

アンパサンドを使わなかったら

もし

14年1月29日水曜日

Page 63: Sass_Grunt/Sass Casual Talks at IPROS

ul { width: 460px; li { float: left; margin-right: 20px; width: 200px; } li:last-child { float: left; margin-right: 0; width: 200px; }}

SCSS

14年1月29日水曜日

Page 64: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

複数人での作業やあとで修正する時、やりづらい

14年1月29日水曜日

Page 65: Sass_Grunt/Sass Casual Talks at IPROS

SCSSSassコーディング!

#main { #one-column & { width: 970px; } #two-column & { width: 670px; }}

14年1月29日水曜日

Page 66: Sass_Grunt/Sass Casual Talks at IPROS

SCSSSassコーディング!

#side { width: 300px; div { margin-bottom: 20px; #two-column & { margin-bottom: 0; } }}

14年1月29日水曜日

Page 67: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 68: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

変数

14年1月29日水曜日

Page 69: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

何度も登場する...リンクカラーやコーポレートカラー...

14年1月29日水曜日

Page 70: Sass_Grunt/Sass Casual Talks at IPROS

a { color: #1122cc;}

.btn { background-color: #1122cc;}

.box { border:1px solid #1122cc;}

CSS

14年1月29日水曜日

Page 71: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

もし、こんなこと言われたら...

14年1月29日水曜日

Page 72: Sass_Grunt/Sass Casual Talks at IPROS

変えたい!色、

14年1月29日水曜日

Page 73: Sass_Grunt/Sass Casual Talks at IPROS

あ″ー、もうっ!!

14年1月29日水曜日

Page 74: Sass_Grunt/Sass Casual Talks at IPROS

(´・ω・`)

Sassコーディング!

奥さん......

14年1月29日水曜日

Page 75: Sass_Grunt/Sass Casual Talks at IPROS

(´・ω・`)

Sassコーディング!

変数......

14年1月29日水曜日

Page 76: Sass_Grunt/Sass Casual Talks at IPROS

$link-color: #1122cc;

a { color: $link-color;}.btn { background-color: $link-color;}.box { border:1px solid $link-color;}

SCSS

14年1月29日水曜日

Page 77: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 78: Sass_Grunt/Sass Casual Talks at IPROS

@extendと@mixin

Sassコーディング!

14年1月29日水曜日

Page 79: Sass_Grunt/Sass Casual Talks at IPROS

.box{ margin: 0; float:left; width: 180px;}

指定したセレクタのスタイルを継承することができる機能

box

180px

Sassコーディング!@@eexxtteenndd

14年1月29日水曜日

Page 80: Sass_Grunt/Sass Casual Talks at IPROS

.box-type-a{ @extend .box; color: #ffffff;}

Sassコーディング!

.box{ margin: 0; float:left; width: 180px;}

14年1月29日水曜日

Page 81: Sass_Grunt/Sass Casual Talks at IPROS

compile

.box,.box-type-a{ margin: 0; float:left; width: 180px;}

.box-type-a { color: #ffffff;}

Sassコーディング!

14年1月29日水曜日

Page 82: Sass_Grunt/Sass Casual Talks at IPROS

.box-type-b{ @extend .box; color:#aaaaaa;}

SCSS

さらに、.box-type-bを追加した場合。

Sassコーディング!

.box-type-a{ @extend .box; color: #ffffff;}

14年1月29日水曜日

Page 83: Sass_Grunt/Sass Casual Talks at IPROS

compile

.box,.box-type-a,.box-type-b{ margin: 0; float:left; width: 180px;}

.box-type-a { color: #ffffff;}

.box-type-b { color: #aaaaaa;}

Sassコーディング!

14年1月29日水曜日

Page 84: Sass_Grunt/Sass Casual Talks at IPROS

@mixin box{ margin: 0; float:left; width: 180px;}

スタイルの集まりを定義しておき、それを他の場所で呼び出して使うことができるもの。

Sassコーディング!@@mmiixxiinn

14年1月29日水曜日

Page 85: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

.box-type-a{ @include box; color: #ffffff;}

@mixin box{ margin: 0; float:left; width: 180px;}

14年1月29日水曜日

Page 86: Sass_Grunt/Sass Casual Talks at IPROS

compile

.box-type-a{ margin: 0; float:left; width: 180px; color:#ffffff;}

Sassコーディング!@mixin

14年1月29日水曜日

Page 87: Sass_Grunt/Sass Casual Talks at IPROS

.box-type-b{ @include box; color:#aaaaaa;}

さらに、.box-type-bを追加した場合。

Sassコーディング!

.box-type-a{ @include box; color: #ffffff;}

SCSS

14年1月29日水曜日

Page 88: Sass_Grunt/Sass Casual Talks at IPROS

compile.box-type-a{ margin: 0; float:left; width: 180px; color:#ffffff;}.box-type-b{ margin: 0; float:left; width: 180px; color:#bbbbbb;}

Sassコーディング!

14年1月29日水曜日

Page 89: Sass_Grunt/Sass Casual Talks at IPROS

@extend @mixin似てる (*´・д・)(・д・`*)ネー.

Sassコーディング!

14年1月29日水曜日

Page 90: Sass_Grunt/Sass Casual Talks at IPROS

コンパイル後の結果が違います

Sassコーディング!

14年1月29日水曜日

Page 91: Sass_Grunt/Sass Casual Talks at IPROS

.box,.box-type-a{ margin: 0; float:left; width: 180px;}

.box-type-a { color: #ffffff;}

@extend.box-type-a{ margin: 0; float:left; width: 180px; color:#ffffff;}

@mixinSassコーディング!

14年1月29日水曜日

Page 92: Sass_Grunt/Sass Casual Talks at IPROS

clearfix

Sassコーディング!よく使う......

14年1月29日水曜日

Page 93: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@extendを使いたいが、継承元のセレクタがコンパイル後のCSSに

生成されて欲しくないなぁ...

14年1月29日水曜日

Page 94: Sass_Grunt/Sass Casual Talks at IPROS

プレースホルダセレクタ

Sassコーディング!

%%

14年1月29日水曜日

Page 95: Sass_Grunt/Sass Casual Talks at IPROS

%clearfix { zoom: 1; &:after { content: “”; display: table; clear: both; }}

Sassコーディング!clearfix

14年1月29日水曜日

Page 96: Sass_Grunt/Sass Casual Talks at IPROS

ul { @extend %clearfix; li { float: left; }}

%clearfix { zoom: 1; &:after {  content: ".";     display: block;     height: 0;     clear: both;     visibility: hidden;  }}

SCSS

14年1月29日水曜日

Page 97: Sass_Grunt/Sass Casual Talks at IPROS

超・便利 @extend...

Sassコーディング!

14年1月29日水曜日

Page 98: Sass_Grunt/Sass Casual Talks at IPROS

最強 @extend...

Sassコーディング!

14年1月29日水曜日

Page 99: Sass_Grunt/Sass Casual Talks at IPROS

@mixin、いらないじゃん...

14年1月29日水曜日

Page 100: Sass_Grunt/Sass Casual Talks at IPROS

((´•・ω•・``))

いやいや、@mixinだっていいトコありますヨ!

Sassコーディング!

14年1月29日水曜日

Page 101: Sass_Grunt/Sass Casual Talks at IPROS

引数が使える!

Sassコーディング!

例えば......

14年1月29日水曜日

Page 102: Sass_Grunt/Sass Casual Talks at IPROS

@mixin rounded($radius: 6px) { -moz-border-radius: $radius; -webkit-border-radius: $radius; border-radius: $radius;}

#box-type-a { @include rounded(); }#box-type-b { @include rounded(10px); }

@mixinSassコーディング!

14年1月29日水曜日

Page 103: Sass_Grunt/Sass Casual Talks at IPROS

#box-type-a { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px;}

#box-type-b { -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px;

@mixincompile

Sassコーディング!

14年1月29日水曜日

Page 104: Sass_Grunt/Sass Casual Talks at IPROS

@mixin font-style($font-size,$color,$mb){  font-size: $font-size + px;  color: $color;  margin-bottom: $mb + px;}

p{  @include font-style(20,#1122cc,10);}

@mixinSassコーディング!

14年1月29日水曜日

Page 105: Sass_Grunt/Sass Casual Talks at IPROS

p { font-size: 20px; color: #1122cc; margin-bottom: 10px;}

@mixinSassコーディング!

compile

14年1月29日水曜日

Page 106: Sass_Grunt/Sass Casual Talks at IPROS

@mixin positionA($top,$right,$bottom,$left){ position: absolute; top: $top + px; right: $right + px; bottom: $bottom + px; left: $left + px;}p{ @include positionA(10,20,0,0);}

@mixinSassコーディング!

14年1月29日水曜日

Page 107: Sass_Grunt/Sass Casual Talks at IPROS

p { position: absolute; top: 10px; right: 20px; bottom: 0px; left: 0px;}

@mixinSassコーディング!

compile

14年1月29日水曜日

Page 108: Sass_Grunt/Sass Casual Talks at IPROS

@extendにも落とし穴が...

Sassコーディング!

それに......

14年1月29日水曜日

Page 109: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

.box { margin: 0; float:left; width: 180px;}

@media screen and (max-width: 600px) { @extend .box;}

14年1月29日水曜日

Page 110: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@media screen and (max-width: 600px) { .box { margin: 0; float:left; width: 180px; }}

期待されるコンパイル結果

14年1月29日水曜日

Page 111: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!実際は...

14年1月29日水曜日

Page 112: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!実際は...

Syntax error:

14年1月29日水曜日

Page 113: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@mediaの中でも、使える!

@@mmiixxiinnは......

14年1月29日水曜日

Page 114: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@mixin box { margin: 0; float:left; width: 180px;}

@media screen and (max-width: 600px) { @include box;}

14年1月29日水曜日

Page 115: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@media screen and (max-width: 600px) { margin: 0; float:left; width: 180px;}

compile

14年1月29日水曜日

Page 116: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@mixin + @content

さらに......

14年1月29日水曜日

Page 117: Sass_Grunt/Sass Casual Talks at IPROS

@mixin sp-tate { @media all and (orientation: portrait) { @content; }}

@main-content { @include sp-tate { color: #333333; }}

Sassコーディング!

14年1月29日水曜日

Page 118: Sass_Grunt/Sass Casual Talks at IPROS

@main-content { @media all and (orientation: portrait) { color: #333333; }}

Sassコーディング!CSS

14年1月29日水曜日

Page 119: Sass_Grunt/Sass Casual Talks at IPROS

@mixin sp-tate { @media all and (orientation: portrait) { @content; }}

@main-content { @include sp-tate { color: #333333; }}

Sassコーディング!

@mediaの長い記述を繰り返し書かなくてよい!14年1月29日水曜日

Page 120: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!@mixin sp-tate { @media all and (orientation: portrait) { @content; }}

@mixin sp-yoko { @media all and (orientation: landscape) { @content; }} 複数の@mediaを使う場合でも、わかりやすい名前

にすれば、管理しやすくなる!14年1月29日水曜日

Page 121: Sass_Grunt/Sass Casual Talks at IPROS

ニャーみんな違ってみんないい!14年1月29日水曜日

Page 122: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@mixin豆知識

ちなみに......

14年1月29日水曜日

Page 123: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@mixin名で使える文字と使えない文字

豆知識......

14年1月29日水曜日

Page 124: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!使える!@mixin tate{}@mixin tate1{}@mixin tate-1{}@mixin tate_1{}@mixin 縦{}@mixin TATE{}@mixin _tate{}@mixin -tate{}@mixin __tate{}

使えない...@mixin 1tate{}@mixin tate@1{}@mixin --tate{}

14年1月29日水曜日

Page 125: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

制御構文で条件分岐や繰り返しを行う

さて次......

14年1月29日水曜日

Page 126: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@each

まず......

14年1月29日水曜日

Page 127: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@each...リストの要素に対して、繰り返し処理を実行する

@@eeaacchh......

@each $変数名 in リスト { 【スタイルなどなど...】}

14年1月29日水曜日

Page 128: Sass_Grunt/Sass Casual Talks at IPROS

%icn-common-style { display: block; float: left; text-indent: -10000px; }@each $addCssClassIcn in txt1, txt2, txt3 { .icn-#{$addCssClassIcn}{ @extend %icn-common-style; background-image: url(assets/icn-#{$addCssClassIcn}.png); }}

@@eeaacchh

14年1月29日水曜日

Page 129: Sass_Grunt/Sass Casual Talks at IPROS

%icn-common-style { display: block; float: left; text-indent: -10000px; }@each $addCssClassIcn in txt1, txt2, txt3 { .icn-#{$addCssClassIcn}{ @extend %icn-common-style; background-image: url(assets/icn-#{$addCssClassIcn}.png); }}

@@eeaacchh

14年1月29日水曜日

Page 130: Sass_Grunt/Sass Casual Talks at IPROS

.icn-txt1, .icn-txt2, .icn-txt3 { display: block; float: left; text-indent: -10000px;}

.icn-txt1 { background-image: url(assets/icn-txt1.png);}.icn-txt2 { background-image: url(assets/icn-txt2.png);}.icn-txt3 { background-image: url(assets/icn-txt3.png);}

compile

14年1月29日水曜日

Page 131: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 132: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@if

次に......

14年1月29日水曜日

Page 133: Sass_Grunt/Sass Casual Talks at IPROS

@if...「もし~ならば~を実行する」「特定の条件」を元に、後の処理をどうするか決めるもの

@@iiff......

@if 条件A{ 【スタイルなどなど...】}@else if 条件B{ 【スタイルなどなど...】}@else {【スタイルなどなど...】}

14年1月29日水曜日

Page 134: Sass_Grunt/Sass Casual Talks at IPROS

@mixin btn-color($color) { @if $color == "orange" { color: #ffffff; background-color: #ff4229; &:hover{ color: #ff4229; background-color: #ffffff; } } @else if $color == "blue" { color: #ffffff; background-color: #4973D2; &:hover{ color: #4973D2; background-color: #ffffff; } }}

.btn-style-a { @include btn-color("orange");}.btn-style-b { @include btn-color("blue");}

@@iiff......

14年1月29日水曜日

Page 135: Sass_Grunt/Sass Casual Talks at IPROS

@mixin btn-color($color) { @if $color == "orange" { color: #ffffff; background-color: #ff4229; &:hover{ color: #ff4229; background-color: #ffffff; } } @else if $color == "blue" { color: #ffffff; background-color: #4973D2; &:hover{ color: #4973D2; background-color: #ffffff; } }}

.btn-style-a { @include btn-color("orange");}.btn-style-b { @include btn-color("blue");}

@@iiff......

14年1月29日水曜日

Page 136: Sass_Grunt/Sass Casual Talks at IPROS

@mixin btn-color($color) { @if $color == "orange" { color: #ffffff; background-color: #ff4229; &:hover{ color: #ff4229; background-color: #ffffff; } } @else if $color == "blue" { color: #ffffff; background-color: #4973D2; &:hover{ color: #4973D2; background-color: #ffffff; } }}

.btn-style-a { @include btn-color("orange");}.btn-style-b { @include btn-color("blue");}

@@iiff......

14年1月29日水曜日

Page 137: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 138: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@for

次に......

14年1月29日水曜日

Page 139: Sass_Grunt/Sass Casual Talks at IPROS

@for...指定した開始の数値から、終了の数値まで、1つずつ増やしながら繰り返して処理される。

@@ffoorr......

@for $変数名 from 開始の数値 through 終了の数値 { 【スタイルなどなど...】}@for $変数名 from 開始の数値 to 終了の数値 { 【スタイルなどなど...】}

14年1月29日水曜日

Page 140: Sass_Grunt/Sass Casual Talks at IPROS

@mixin spacing($number) { $type: 'p'; $cssType: 'padding'; @for $i from 1 through 2 { @if $i > 1 { $type: 'm'; $cssType: 'margin'; } .#{$type}t#{$number} { #{$cssType}-top: #{$number}px !important; } .#{$type}r#{$number} { #{$cssType}-right: #{$number}px !important; } .#{$type}b#{$number} { #{$cssType}-bottom: #{$number}px !important; } .#{$type}l#{$number} { #{$cssType}-left: #{$number}px !important; } }}@include spacing(5);@include spacing(10);

条件分岐

繰り返し

14年1月29日水曜日

Page 141: Sass_Grunt/Sass Casual Talks at IPROS

@mixin spacing($number) { $type: 'p'; $cssType: 'padding'; @for $i from 1 through 2 { @if $i > 1 { $type: 'm'; $cssType: 'margin'; } .#{$type}t#{$number} { #{$cssType}-top: #{$number}px !important; } .#{$type}r#{$number} { #{$cssType}-right: #{$number}px !important; } .#{$type}b#{$number} { #{$cssType}-bottom: #{$number}px !important; } .#{$type}l#{$number} { #{$cssType}-left: #{$number}px !important; } }}@include spacing(5);@include spacing(10);

条件分岐

繰り返し

14年1月29日水曜日

Page 142: Sass_Grunt/Sass Casual Talks at IPROS

.pt5 { padding-top: 5px !important;}.pr5 { padding-right: 5px !important;}...(ごめんなさい、省略します)....mb10 { margin-bottom: 10px !important;}.ml10 { margin-left: 10px !important;}

compile

14年1月29日水曜日

Page 143: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 144: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

@while

次に......

14年1月29日水曜日

Page 145: Sass_Grunt/Sass Casual Talks at IPROS

@while...条件式に当てはまる間、繰り返し処理が行われる。@forより柔軟な繰り返し処理を行う事ができる。

@@wwhhiillee......

@while 繰り返し条件 { 【スタイルなどなど...】 繰り返し方指定}

14年1月29日水曜日

Page 146: Sass_Grunt/Sass Casual Talks at IPROS

繰り返し

$i: 8;

@while $i <= 30{  .txt#{$i}{    font-size: $i + px!important;  }  $i: $i+2}

14年1月29日水曜日

Page 147: Sass_Grunt/Sass Casual Talks at IPROS

$i: 8;

@while $i <= 30{  .txt#{$i}{    font-size: $i + px!important;  }  $i: $i+2}

繰り返し

14年1月29日水曜日

Page 148: Sass_Grunt/Sass Casual Talks at IPROS

.txt8 { font-size: 8px !important;}.txt10 { font-size: 10px !important;}...(ごめんなさい、省略します)....txt28 { font-size: 28px !important;}.txt30 { font-size: 30px !important;}

compile

14年1月29日水曜日

Page 149: Sass_Grunt/Sass Casual Talks at IPROS

ニャー

すごーい!14年1月29日水曜日

Page 150: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

今、CSSを使っていて、CSSからSassに移行したい

さて......

アナタ(´・ω・`)14年1月29日水曜日

Page 151: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

(rubyをインストール)Sassをインストール

まず......

14年1月29日水曜日

Page 152: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

CSSファイルの拡張子を.scssにする!

次に......

14年1月29日水曜日

Page 153: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

ハックで使用している / は取り除く

注意点

× #side_contents { /margin-left: 5px; } IE6,7用○ #side_contents { *margin-left: 5px; } IE6,7用

14年1月29日水曜日

Page 154: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

CUIのビルドタスクを入れるなり、GUIのビルドタスクを入れるなり...後半のセッションをお楽しみに...

あとは......

(´・ω・`)14年1月29日水曜日

Page 155: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

Sassってすごーく奥が深いです

14年1月29日水曜日

Page 156: Sass_Grunt/Sass Casual Talks at IPROS

Sassコーディング!

習得して、使いこなして、楽しいSassライフを!

ヽ(´▽`)/14年1月29日水曜日

Page 157: Sass_Grunt/Sass Casual Talks at IPROS

ちなみに、、、これ、便利でした

・SassOnlineEditorhttp://next-nex.info/service/sass/

・ScssOnlineEditorhttp://next-nex.info/service/scss/

オンラインエディタのご紹介!

14年1月29日水曜日

Page 158: Sass_Grunt/Sass Casual Talks at IPROS

Sass

ご清聴ありがとうございました

14年1月29日水曜日