Sassの基本

メモ:

プログラミング言語のごとく CSS を記述できる SASS の基本について見ていきます。

SASS とは

Sass (サース)とは、簡単に表現すると「CSSをより効率的に書ける言語」になります。

Sass は、「 Syntactically Awesome StyleSheet 」を略した言葉で

  • Syntactically = 構文的に
  • Awesome =  驚くべき
  • StyleSheet = スタイルシート

と言う意味になります。

「変数や関数などの CSS を拡張した言語を使うことによって、驚くくらいに早くスタイルシートを作ることができると言う」感じなのでしょう。

変数の仕組みなどは、 CSS のバージョンアップとともにネイティブでサポートされつつありますが、条件分岐やループ処理,Mixin,関数など冗長化を少なくすることができます。

Sass には、「 SASS 記法」と「 SCSS 記法」という2種類の書き方があります。ここでは、 SCSS 記法の書き方について見ていきたいと思います。

セレクタのネスト

子孫セレクタを CSS で記述すると、次のようになります。

ul {
  background: #333;
}
ul li {
  margin-bottom: 1rem;
}
ul li img {
  display: block;
}

Sass では、セレクタの中にセレクタを書いてとネストすることができます。

ul{
    background: #333;
    li{
        margin-bottom: 1rem;
        img{
            display: block;
        }
    }
}

上記例から、記述量を減らせることが確認できます。

プロパティのネスト

セレクタと同じようにプロパティもネストすることができます。

.copyright {
  border-bottom:  1px solid #795548;
  border-right:  1px solid #795548;
  border-left:1px dotted #263238;
  padding-top: 0.5em;
  padding-right: 1.5em;
}

プロパティをネストする場合は、「{」の前に「:」をつけます。

.copyright {
  border:{
    bottom: 1px solid #795548;
    right: 1px solid #795548;
    left: 1px dotted #263238;
  }
  padding:{
    top: 0.5em;
    right: 1.5em;
  }
}

ネストしたことで可読性があがったかな・・・

親の参照「 & 」

「 :hover 」疑似クラスを CSS で記述する場合、親セレクタに続けて「 :hover 」を書きます。

a {
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}

Sass では、親セレクタを参照するよう「 & 」を使用します。

a{
  text-decoration: none;
  &:hover{
    text-decoration: underline;
  }
}