[CSS]CSSメソッド
CSSメソッド:メンテナンスが容易なCSSの作成方法
CSSをモジュール化して冗長性を最小限に抑える
構造と外観(形状)の分離
外観属性:
コンテナ
Scalable and Modular Architecture for CSS
CSSの拡張モジュール化構造
役割によってCSSコードを分類する
派生CSSコレクタの無効化
IDコレクタの無効化
!重要な使用を禁止
デフォルトスタイル(Reset、Default、Variables、Mixins)
基本スタイルは!使わなくてもいい
レイアウトに関するスタイル
クラス名に接頭辞
主要部品
サブエレメント
モジュラースタイル
スタイルの再使用に使用する要素
Block, Element, Module
IDと要素の再利用を禁止します(elementが必要な場合はサブセレクタ(
要素の状態変化を表すスタイル(ex、
主に
クラス名に接頭辞
サイト全体のlookとfeelを制御
ユーザーが選択できるようにスタイルを再宣言
クラス名に接頭辞
Block Element Modifierクラス名のみ使用(id x使用) 利点:直感的なクラス名で、ファイルの構築が容易です.
欠点:クラス名が比較的長い.
エレメントコンテナ
(ex,
Blcokで特定の機能を実行する構成部品
2つの
blockまたはelementのプロパティを使用して外観またはステータスを変更する
2つの
Modifierが有効で値に関係なく使用される場合のみ:
例:Tailwind CSS、Tachyons、Atomic CSSインタラクティブでコンテキストに依存しないCSS の作成個々の属性と値を表すCSSを事前に定義しておくと、クラス名を直接使用して追跡できます HTMLで定義済みクラスを組み合わせる 擬似クラスコレクタの有効化 mediaquery利用可能
OOCSS
CSSをモジュール化して冗長性を最小限に抑える
構造と外観(形状)の分離
/* 구조 */
.btn { … }
/* 스킨 */
.accept { … }
.cancel { … }
構造属性:width
、height
、padding
、margin
など.外観属性:
color
、font
、background
、box-shadow
など.コンテナ
/* .main .btn (x) */
.main { … }
.btn { … }
SMACSS
Scalable and Modular Architecture for CSS
CSSの拡張モジュール化構造
役割によってCSSコードを分類する
派生CSSコレクタの無効化
IDコレクタの無効化
!重要な使用を禁止
Base
デフォルトスタイル(Reset、Default、Variables、Mixins)
基本スタイルは!使わなくてもいい
Layout
レイアウトに関するスタイル
クラス名に接頭辞
l-
を指定主要部品
id
コレクタ(header
、footer
など)サブエレメント
class
コレクタ(nav
、form
など)#content { … }
.l-fixed #content { … }
Module
モジュラースタイル
スタイルの再使用に使用する要素
Block, Element, Module
IDと要素の再利用を禁止します(elementが必要な場合はサブセレクタ(
>
)を使用します).State
要素の状態変化を表すスタイル(ex、
툴팁
、아코디언
)主に
JavaScript
によって操作されるクラスクラス名に接頭辞
is-
を指定!important
利用可能is-hidden { … }
is-error { … }
is-hover { … }
Theme
サイト全体のlookとfeelを制御
ユーザーが選択できるようにスタイルを再宣言
クラス名に接頭辞
theme-
を指定BEM
Block Element Modifier
OOP
(オブジェクト向けプログラミング)類似欠点:クラス名が比較的長い.
Blcok
エレメントコンテナ
(ex,
logo
, login
, form
, menu
, search
, from
, content
, footer
).header { … }
.menu { … }
.search { … }
ブロックは重なり合うElement
Blcokで特定の機能を実行する構成部品
2つの
Underscore(Lodash)
記号を接続し、blockの後に作成します..header__logo { … }
.header__menu { … }
.header__search { … }
.header__login { … }
名前が長い場合は-
を使用します..block-name__element-name
要素が重なり合わないblock__element1__element2
はエラーの構成Modifiers
blockまたはelementのプロパティを使用して外観またはステータスを変更する
2つの
Hyphen(Dash)
シンボルを接続.block--modifier {…}
.block__element--modifier {…}
BooleanタイプModifierが有効で値に関係なく使用される場合のみ:
disabled
,focused
修飾語がある場合はtrueと仮定します.form__button--disabled {…}
key-valueタイプ.form__button--color-red {…}
.form__button--theme-ocean {…}
Utility-First CSS / Functional CSS
例:Tailwind CSS、Tachyons、Atomic CSS
<button class="w-1/2 rounded-md border border-gray-300">Button</button>
inline styleとの違いReference
この問題について([CSS]CSSメソッド), 我々は、より多くの情報をここで見つけました https://velog.io/@tjdgus3160/CSS-CSS방법론テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol