FLOCSSの基本ルールを自分なりにまとめていくよ

私の受講するRaiseTechでは、CSSの記法としてFLOCSSを使うそうな。

CSS設計の基本とFLOCSSを作った方による書籍(柴犬でもわかるFLOCSS)を読んだので

まずは書き方のルールを己に落とし込むため書き方をまとめていきます

FLOCSSのレイヤー

まず、FLOCSSでは3つのレイヤーが存在していて、

これに適したレイヤーを選択し、クラス名をつけてあげなければなりません

  • Fonudation:基本情報を書く
  • Layout:大枠のレイアウトに関する記述。クラス名は「l-」で書きだし
  • Object:繰り返し使われる見た目

Objectはさらに3つに分かれます

  • Component:アイテムが繰り返される中で共通する装飾。クラス名は「c-」で書き出し
  • Project:各アイテムの装飾。クラス名は「p-」で書き出し
  • Utility:上記に当てはまらない微妙なレイアウト変更など。「u-」で書き出し

Utilityの使い道がなんとも不明瞭ですが、基本はComponentかProjectかのどちらかを使用する模様。

Projectクラスで書いてみて、この装飾何回も書いてんな…汎用性高くね?と思ったら

Componentクラスを設置してそちらに記述するようなイメージです

FLOCSSの記述ルール

以上がFLOCSSのレイヤーでした

クラスセレクタで何度も呼び出す形になると思うのですが、記述にはルールがあります。

私が見た限りでは3つです

まず、レイヤーは必ず上で紹介した順に書く必要があります

Fondation>Layout>Component>Project>Utilityですね。

次に厄介なのが、1つのタグの中に同一階層のレイヤーのクラスを複数与えてはいけないらしいです。

▼ダメな例(Componentレイヤーのクラスが一つのタグの中に共存している)

<div class="c-aaaa c-cccc">~~~</div>

▼よい例(複数クラスだがレイヤーがComponentとProjectで異なるため許される)

<div class="c-aaaa p-bbbb">~~~~</div>

最後に、CSSを書く際に同じ階層のセレクタを入れ子にして呼び出してはいけないそうです。

▼ダメな例(同一レイヤーで絞り込んでいる)

.c-aaaa .c-cccc{~}

▼よい例(入れ子になっているがレイヤーが異なるため許される)

.c-aaaa p-bbbb{~}

FLOCSSの命名規則はBEMに準拠

FLOCSSのクラス名の頭にlやらcやらuやらをつけるというのは先にもお伝えしておりますが

さらに細かい命名規則はBEMという別の記法に則ってねとおっしゃられています

なので、BEMの規則が分からんとFLOCSSでクラス名をいい感じに付けられんのです

しかしながらここでBEMについて1から100まで伝えるのは本筋から外れてしまうので

FLOCSSを書くにあたり踏襲すべきBEMのルールを搔い摘んで

  • Elementっぽかったら__で単語をつなげる
  • Modifireっぽかったら_で単語をつなげる

この2つが大きそうです

BEMにはBlock・Element・Modifireの3つの要素があり、

ElementはBlockを構成する要素

ModifireはBlock・Elementのビジュアルを書くためのクラスです

Blockはほかの場所でも使いまわせる1まとまりのパーツを指すそうです

構成単位とFLOCSSの構成単位は微妙に違っている中で、どんなふうに命名規則に絡んでくるのかがちょっとよくわからんのですよね!

この辺のイメージが湧いてないので、実際のコードを見ながら言語化できるようにしていきたいです

以上

青のポートフォリオサイト

新着記事

  • 2021年12月
  • 2021年10月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2020年12月
  • カテゴリ

  • WEB制作
  • 投稿記事一覧に戻る

    コメント

    コメントはありません

    メールアドレスは公開されませんのでご安心ください。
    また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。



    *