[Sass & Compass] Sass・Compass まわりの便利だけど忘れがちな Tips

また気がついたら書き足すかも。

[markdown]
## image-url() でイメージを指定する

config.rb でイメージパスを一括制御するために必要。CSS Sprite などにも影響。
.scss 内では `image-url()` を必ず使うようにすると、パスの変更が発生したときに対応がしやすい。

“`css
.bg {
background: image-url(‘nav-bg.png’) repeat-y left top;
:
“`

## & で親セレクタを参照する

例えば `&:hover` など。

“`css
@mixin bg-opacity($background, $opacity) {
display: block;
position: relative;
&:after {
content: “”;
background: url($background) repeat-y left top;
:
“`

## mixin の引数に初期値を与える

変数名に続けて初期値を書きます。

“`css
@mixin bordered-box($width, $style:solid, $color:black) {
border: $width $style $color;
:
“`

利用時に変更したい箇所だけ指定したい場合。

“`css
.box {
@include borderd-box(1px, $color:blue);
:
“`

## 変数にディフォルト値を持たせる

`!default` で指定する。

“`css
$color: black !default;
@mixin bordered-box($width, $style:solid, $color) {
border: $width $style $color;
:
“`

@import する先に $color が設定されている場合は、このディフォルト値は使われず上書きされます。

“`css
$color: red;
@import “foo”;
.box {
@include bordered-box(1px);
:
“`

## プレースホルダーセレクタ

無駄なセレクタを出力せずにすみます。

“`css
%clearfix {
@include clearfix;
}
div.sample {
@extend clearfix;
:
“`

## sass-convert

`sass-convert` で CSS を SCSS へ変換。セレクタのネスト化を行う。
SCSS <-> SASS や CSS <-> SASS も可能。

“`prettyprinted
% sass-convert test.css test.scss
“`

ディレクトリごと変換する場合は、このように書くそう。

“`prettyprinted
% sass-convert — recursive –from css –to scss style/
“`

## compass stats

css_parser という gem をインストールしておきます。

“`prettyprinted
% gem install css_parser
% compass stats
“`

> * [CSS – 君は知っているか、あのCompassのstatsコマンドを! – Qiita](http://qiita.com/t32k/items/8609ffe0868da3e485a6)

## 補遺

### @function

> * [sassの抑えておきたいfunctionの使い方 « NAVER Engineers' Blog](http://tech.naver.jp/blog/?p=845)
> * [WebTecNote – [Sass+Compass] Rubyで作るカスタム関数と設定](http://tenderfeel.xsrv.jp/css/compass-css/1240/)

### @content

> * [【Webデザイナ-・コーダー向け】すぐに使えるSCSS入門|Mixinsを作ってみよう編 | Developers.IO](http://dev.classmethod.jp/ria/html5/web-desiner-corder-scss-create-mixin/)
> * [@content(ver 3.2〜)|sass|study|kanapple.net](http://kanapple.net/study/archives/51)

### !default

> * [Sassの!defaultフラグの使い方と使われ方 – Weblog – Hail2u.net](http://hail2u.net/blog/webdesign/how-to-use-bang-default-flag-in-sass-and-how-it-works.html)
[/markdown]