Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8767

BEMとFLOCSSとは?

$
0
0
BEMとFLOCSSとは BEM(MindBEMding)は一意なクラスを作るための命名規則 FLOCSSはCSSファイルをモジュール化するための命名規則 (参考:https://backlog.com/ja/blog/how-to-write-markdown/) この命名規則に従うことで、 1.クラス名に悩む必要がなくなる 2.クラス名を見ることである程度何に対応しているかわかる 3.各要素を管理しやすくなる などなど… BEMについて BEMとはBlock Element Modifierの略称。この3つを組み合わせてクラス名を決めること。(調べた結果、Modifierは2つに比べてあまり使われない模様) 各説明は以下の通り。 Block:大きな要素 Element:Blockを構成する要素 Modifier:BlockとElementのスタイルの一部を変えるもの BEMを取り入れることで 保守性が高くなる BEMの規則上block要素が1つになるので、各要素のまとまりごとに管理することができ、要素の追加、削除を簡単に行うことができる 可読性が上がる BEMはblock__element--modifierと、記述する規則があるため、SCSSで記載する際にネストが深くなりすぎず、すぐに読み解くことができる。 再利用がしやすい BEMはblockを起点として1つの塊で使用しているため、ページ内でコンテンツを移動したときや、同じデザインでコンテンツを追加した際に、他のスタイルによる影響を受けないため再利用がしやすくなる (参考:https://qiita.com/ryo_cy/items/a328ea7779f8f52e5f22) また、記入の仕方は以下の通り class="block__element–-modifier" blockとelementはアンダースコア2つで区切る Elementとmodifierはハイフン2つで区切る ハイフンとアンダースコアは2つ block, element, modifierが複数単語になる場合、単語と単語の間はハイフン1つで区切る ハイフン1つの場合はElementとModifierの区切りではなく、ただの単語の区切りとして使用 例) class="sidebar__title"←サイドバーのタイトル class="article__text"←記事のテキスト FLOCSSとは 1つのCSSファイルにまとめて記述するのではなく、スタイルを適用するレイヤーやパーツごとに、ファイル単位で分割・モジュール化して管理しやすくする。 Foundation Layout Objectの頭文字をとったもの。 3つの説明は以下の通り。 Foundation←reset.cssなどデフォルトのスタイルを記述するCSSファイルを格納 Layout←ページを構成するheader, main, footerという大きな枠のスタイルを記述するCSSファイルを格納 Object←プロジェクト内で繰り返し使われるビジュアルパターン。さらに「component」「project」「utility」のレイヤーに分けられる。 各々を分割してファイルをまとめる。 例) css ┣ Foundation ┃ ┗ base.scss ┣ Layout ┃ ┣ footer.scss ┃ ┗ header.scss ┗ Object ┣ Component ┃ ┣ background.scss ┃ ┣ btn.scss ┃ ┣ module.scss ┃ ┗ section.scss ┣ Project ┃ ┣ article.scss ┃ ┣ grid.scss ┃ ┣ icon.scss ┃ ┗ media.scss ┗ Utility ┣ display.scss ┗ text.scss (参考:https://tech.playground.style/workstyle/css-design/) BEMとFLOCSSの組み合わせ クラス名に接頭辞(layoutなら「l」、objectなら「c(component)」「p(project)」「u(utility) 」)をつける。 例) class="l-header__title" class="c-botton"

Viewing all articles
Browse latest Browse all 8767

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>