CSS

sass×compassでコーディング効率化!意外と知らなかった?関数いろいろ※cssコンパイル後ソースあり

前回の記事でsassで作業を効率化するために、関数について触れました。

今回は若干深堀りして、compassの関数でコーディング効率化のためにPreprosユーザーの僕が比較的使っている、かんたんに導入できるものをメモしていきます。

はじめに、compassをインストールすることと、コード上に

の記述をしておいてくださいー!(Preprosの場合はcompassインストールは不要ですので上記の記述を.scssファイルに直接しちゃってください!)

Utilitiesモジュール(ジャンルレスで汎用的なもの)

子要素を横並びにする

Sass(コンパイル前)

Css(コンパイル後)

inline-listinline-block-listは結構たくさん記述が生成されてしまいますね。

僕は一番最後のinline-blockを単体でよく使います。

Typographyモジュール(テキスト装飾関連)

 リンクテキストの:visited , :hover , :active , :focus 一括指定

Sass(コンパイル前)

Css(コンパイル後)

:focusまで行けちゃうのは便利ですね。

ただ、「解りやすいソースコード」という意味では普通に書いていったほうがいいと思います。

フォントの大きさや行の高さのベースを基軸として段落幅を調節する

Sass(コンパイル前)

Css(コンパイル後)

establish-baselineをインクルードするとhtmlへの指定まで記述されます。

$base-font-size$base-line-heightは定義しなくてもデフォルトで値があるので省略はできます。

leader()とpadding-leader()が段落の上に作用する幅で、ソレに対してtrailer()padding-trailer()が段落の下に作用する幅ですね。
これらは$base-line-heightを基準に設定されます。

コンテンツ幅からはみ出た文章を折り返さずに「…」とする

Sass(コンパイル前)

Css(コンパイル後)

CSS3モジュール(CSS新要素関連)

要素の透過度を調節する

Sass(コンパイル前)

Css(コンパイル後)

IE用にfilterプロパティも生成してくれます!

マウスオーバー時などに簡易的なCSSアニメーションを実装する

Sass(コンパイル前)

Css(コンパイル後)

transitionの引数には、順に「プロパティ , かかる時間 , アニメーションの種類 , アニメーション開始までの遅延時間」を書きます。通常の指定の仕方と同じですね。

意外とIE8と9に対応していない。

テキスト、ブロックレベル要素にシャドウをつける

Sass(コンパイル前)

Css(コンパイル後)

text-shadowは使い方によっては文字を縁ったような表現もできますし、用途に応じてミックスインを作るのに使っています。

box-shadowは微妙~な影を出したいときにrgba()と組み合わせてうっすらと使います。

方向や形を指定して背景色をグラデーションにする

Sass(コンパイル前)

Css(コンパイル後)

通常の一直線方向のグラデーションはlinear-gradient()で、円形の場合はradial-gradient()で実装します。

radial-gradientの場合は引数に([円形の大きさ] , [中心の色] , [端の色])と書くのが基本形。

linear-gradientの場合は([方向] , [開始点の色] , [終点の色])と書くのが基本形で、例では「.linear-g」に指定してあるものです。
ほか「.v-g」に([開始点の色] , [中間点の色] , [終点の色])と指定してあり、この場合は0%~50%~100%と均等にグラデーションカラーが生成されます。
.h-g」の場合は、([方向] , [10%地点での色] , [20%地点での色] , [90%地点での色])と書くことで水平にグラデーションを生成しています!

borderやpadding幅をwidrhに含める

Sass(コンパイル前)

Css(コンパイル後)

引数を省略してもborder-boxになります。
border-boxは、paddingやborder幅をwidthに含める状態となる指定です。

widthを指定して、折り返したテキストを段組にする

Sass(コンパイル前)

Css(コンパイル後)

column-countは、決められた幅の中で、指定した数の分だけカラムを生成します。
例の場合は500pxの中でカラムを2つ、3つ生成しています。

IE10、Android OS 4.0~の対応で、他のモダンブラウザに関しては最新であれば問題なく使えます。

加えて、column-ruleをインクルードすることで、カラム間のボーダーの色やスタイルを指定できます。

背景画像の大きさを調節する

Sass(コンパイル前)

Css(コンパイル後)

containcover、数値でも細かく指定できます。引数を省略すると100% autoの指定になります。

要素を変形させる

Sass(コンパイル前)

Css(コンパイル後)

おなじみtransformプロパティですが、compassの手にかかればいとも簡単にベンダープレフィックス付きで指定できます。

 

いかがでしょう?

ほかにもありますが、比較的すぐに導入できて実践的なのは今回挙げたものが代表的かなー、といったところです。

ちなみに、compassドキュメントと「Sassの教科書」を参考にさせていただきました!

前回の記事もそうですが、僕はPreprosユーザーなので、コマンドラインやターミナルでSassをインストールしていない方でも差し支えなく使えるものばかり挙げています!

コマンドラインやターミナル(もしくはコンパイラの種類による?)を使えば、子要素まで書きだされてしまうcompass関数でも、デフォルトの子要素を自由に変更できたりします。
是非試してみてくださいー!

Sassについての記事、次回は、僕がよく使う自作ミックスインでも紹介しようかと思います。そんなに役に立ちませんが、乞うご期待!

 

でわ!