less で親要素の class を指定する方法

& って便利だね!


Posted on 2017年 11月 5日 (日)
Tags less
less

週末フロントエンダー

業務では shellscript と golang 書いておきながら、週末は html, css, js とフロントエンドを開発していたりします。

less 便利

バックエンドのコードばっかり書いている身からすると、css のやぼったさに辟易しがちですが、less に出会ってから、css とも仲良くやれる気がしてきています。

less の基本

例えば、この記事の下の方にある SNS 共有ボタンですが、細かいところをはしょると less ファイルは以下のようになっています。

 1.sns-share-area {
 2 text-align: center;
 3 ul li {
 4  list-style: none;
 5  ...
 6
 7  a {
 8   display: block;
 9     ...
10  }
11
12  &.original-tweet a {
13   background:#55acee;
14  }
15
16  span {
17   display:block;
18   &.common-txt {
19    font-size: 13px;
20   }
21   &.common-icon {
22    height: 25px;
23    ...
24   }
25  }
26
27  .result-area {
28      border: 1px solid #d6ceb4;
29      ...
30
31    &:before{
32     content: "";
33     ...
34    }
35
36    &:after{
37     content: "";
38     ...
39    }
40  }
41 }
42}

親子構造がシンプルに書けるのが less の凄さなのですが、

1.sns-share-area {
2  ul li {
3    a {
4      // .sns-share-area ul li a { } と同じ
5    }
6  }
7}

書いていて疑問だったのが、特定の .sns-share-area ul li.original-tweet a { } をどう表現するかです。

 1.sns-share-area {
 2  ul li {
 3    a {
 4      // .sns-share-area ul li a { } と同じ
 5    }
 6    &.original-tweet a {
 7      // .sns-share-area ul li.original-tweet a { } と同じ
 8    }
 9
10    .result-area {
11       border: 1px solid #d6ceb4;
12       ...
13
14     &:before{
15      content: "";
16      ...
17     }
18    }
19  }
20}

& でつなげると、よいのですね! 同じ要領で before after も &:before でつなげてしまったらオッケー。

覚えてしまえば便利でシンプル!

Share