CSSサンプル

ここでは、Smart*CSS独自のCSSである.scssファイルの記述方法のサンプルをご紹介します。Smart*CSSがインストールされた環境で、.scssファイルにBeforeのように記述すると、Afterのように変換されたCSSが表示されます。

階層化

Before

#content {
    p {
        margin:1em;
        padding:0;
    }
 
    ul {
        list-style:none;
 
        li { padding:5px; }
    }
}

After

#content p {
    margin:1em;
    padding:0;
}
 
#content ul {
    list-style:none;
}
 
#content ul li {
    padding:5px;
}

Smart*CSSによる最も基本的な書式です。波括弧を入れ子にして階層構造を作ってやると、それに合わせたCSSを出力します。右のようなCSSを書くのは手間がかかりますが、Smart*CSSなら簡単です。ページ内をいくつかのdiv要素でブロック化してコーディングするような場合に特に有効です。波括弧とプロパティ定義は行を分けても、一行で書いても構いません。

カンマ併記

Before

#header {
    p , table {
        margin:0;
    }
}

After

#header p {
    margin:0;
}
 
#header table {
    margin:0;
}

通常のCSSと同じように、複数のセレクタをカンマで区切って指定することができます。上のような親子構造を持たせた場合、それぞれの子要素に親のセレクタが適用されます。

カンマ併記2

Before

#header , #footer {
    p {
        margin:0;
    }
}

After

#header p {
    margin:0;
}
 
#footer p {
    margin:0;
}

今度は逆に、親のセレクタをカンマ区切りで記述したパターンです。この場合、それぞれの親に対して子のセレクタが展開されます。上記の例では、「ヘッダとフッタのpにはマージンを適用しない」というケースを想定しています。

変数の使用

Before

[assign var="img" value="../../images/"]

ul li {
    background:url('[$img]li_header.gif') no-repeat;
}

h1 {
    background:url('[$img]head_bg.gif');
}

After


ul li {
    background:url('../../images/li_header.gif') no-repeat;
}

h1 {
    background:url('../../images/head_bg.gif');
}

Smart*CSSはphpのテンプレートエンジンであるSmartyを使用しています。Smartyはいろいろな機能を持っており、Smart*CSSではその機能をそのまま利用できます。例えば、上記のように変数を利用して、同じ記述をまとめることが可能です。

他にも、よく使う属性の定義をまとめてしまうというのもありですね。「margin:0;padding:0;border:none;background:none;」みたいな定義を [$init] としてまとめる、なんてのも使えそうです。

▲ページの先頭に戻る