[Sass & Compass] Sass で BEM を使う場合の syntax を確認する
Sass 3.3 から & (Ampersand) で表現できるようになっているので、その記法を確認します。
[markdown]
> * [File: SASS_CHANGELOG — Sass Documentation](http://sass-lang.com/documentation/file.SASS_CHANGELOG.html)
## Sass 3.3 以前
Sass 3.3 RC では、こちらで紹介されているような記法だったよう。
> * [Sass 3.3で追加された「&」の新機能と@at-rootまとめ解説 | HTML5Experts.jp](http://html5experts.jp/kosei27/3297/)
“`css
.at-block
color: blue
@at-root
#{&}__element/* .block__element */
color: green
@at-root
#{&}–modifier/* .block__element–modifier */
color: red
“`
もしくは mixin をつかって書く。
> * [SASSを使ってBEMで記述](http://howtohp.com/2013/12/27/sass-bem/)
## Sass 3.3 以降
今現在はこのようにスッキリ書くことができます。
> * [File: SASS_REFERENCE — Sass Documentation](http://sass-lang.com/documentation/file.SASS_REFERENCE.html#parent-selector)
“`css
.and-block
color: blue
&__element/* .block__element */
color: green
&–modifier/* .block__element–modifier */
color: red
“`
CSS だけのパターンとあわせて。
.block
color: blue
.block__element/* .block__element */
color: green
.block__element--modifier/* .block__element--modifier */
color: red
.and-block
color: blue
&__element/* .block__element */
color: green
&--modifier/* .block__element--modifier */
color: red
.at-block
color: blue
@at-root
#{&}__element/* .block__element */
color: green
@at-root
#{&}--modifier/* .block__element--modifier */
color: red
/* CSS decoration
div
border: solid 1px #ccc
margin: 0 auto 1em auto
width: 50%
See the Pen Sass BEM style selector syntax by DriftwoodJP (@DriftwoodJP) on CodePen.
[/markdown]