Movatterモバイル変換


[0]ホーム

URL:


GIG inc., profile picture
Uploaded byGIG inc.
PPTX, PDF20,370 views

CSS設計

CSS設計を公開 ※ 株式会社GIGでは毎月社内勉強会を実施しています GIG inc. Good is good. We provide opportunities to the SEKAI by fusing technology and ideas. テクノロジーとクリエイティブでセカイをより良くする。小さなチームからスタートした多くの先人達が、世界をより豊かなモノに変革してきました。通信、UX、デバイス、技術の変化と共に世界はまだまだ加速度的に変わります。 Good is good. いいものはいい。GIGは、関わったユーザーやクライアントが前に進める“きっかけ”をつくりつづけます。 ■ お問い合せ https://giginc.co.jp/contact/

Embed presentation

Download to read offline
CSS設計
目次1. OOCSS2. SMACSS3. BEM4. FLOCSS5. まとめ
OOCSS
OOCSSとは?元・米Yahoo!のデペロッパーだったニコール・サリバンによって提唱された。オブジェクト思考に基づいて、考案された設計思想。Object Oriented CSSの略
使用法構造と見た目、コンテナと内容を分離してclsssを定義し、それらを組み合わせてスタイルを定義する。ID、子孫セレクタは、なるべく使わなず、スタイルはclassで定義して組み合わせる。悪い例.btn-red {width: 300px;height: 100px;Line-height: 100px;color: white;backgronud-color: red;}良い例.btn {width: 300px;height: 100px;Line-height: 100px;}.btn-red {color: white;backgronud-color: red;}
メリット・再利用性とメンテナンスがしやすい・共通化することでコード量が減るデメリット・コードが複雑になる。・共通化によってどこにどのスタイルが当たるのか、CSSの見通しは悪くなることがある。・CSSファイルの切り分けがうまくできていなかったり、どのパーツが共通化されているのかわかるガイドがない場合、新しくプロジェクトに参加するメンバーは初めに時間をかけてコードを読み理解しないといけない。
SMACSS
SMACCSとは?元・米Yahoo!のデペロッパーであり、Yahoo! Mailなどの担当していたジョナサン・スヌークによってOOCSSのコンセプトを元に作られた。Scalable and Modular Architecture for CSSの略
・スタイルをベース、レイアウト、モジュール、ステート、テーマの5つに分割するベース要素そのもののデフォルトスタイル。レイアウトページをエリアごとに分割。layout-, .l- などの接頭辞をつけるモジュール再利用可能なパーツ。 モジュールにはmod-, m-などの接頭辞はつけない。状態(ステート)レイアウトやモジュールの特定の状態を示す。ステートにはis- 接頭辞をつける。テーマサイトのルック&フィールを定義。テーマにはtheme- 接頭辞をつける使用法
├── base(デフォルトスタイル)│ ├── _base.css│ └── _reset.css├── layout(ページを構成するコンテナ)│ ├── _header.css│ ├── _footer.css│ ├── _main.css│ └── _sidebar.css├── module(プロジェクトにて、繰り返されるパターンを定義)│ ├── _button.css│ ├── _form.css│ └── _list.css├── state (要素の状態を管理する。javascriptでの切り替えなどに使用)│ ├── _error.css│ ├── _display.css│ └── _animate.css└── theme(サイト全体のテーマの管理)├── _error.css├── _display.css└── _animate.cssディレクトリ構成はこんな感じ
メリット・再利用性とメンテナンスがしやすい・どのファイルをいじればいいかわかりやすい。デメリット・場所に依存するパーツが多すぎるサイトでは良いところを活かせられない。
BEM
BEMとは?ロシアのYandex社によって考案された設計思想です。Block、Element、Modifierの略
使用法要素をBlock、Element、Modifierの3つに分け、命名規則を元にClass名を記述します。「Block-Element__Modifier」のように・BEMではBlockとElementの間を「-」・ElementとModifierの間を「__」で区切って記述する。※「Block_Elemen__Modifier」など全てアンダーバーで区切ってアレンジする人もいる。
BlockBlockはどこでも置くことができ、Blockの中にBlockを含めることも可能です。ただしCSSではBlockは完全に独立し、Blockを別の場所に移動しても、単体で動作可能である必要。Blockが親の名前になるので、重要。
ElementElementは、ブロックの構成要素です。ElementはBlockの構成要素の一つなのでBlockの中に存在する必要がある。必ず頭にBlock名がつくので、重複しないclass名になるのでElement以下の名前はパターンで書くことができる 。
Modifier同じElementでも、カレント状態であったり、異なる装飾を設定する場合使用。KeyとValueという名前をつけてわかりやすくすることができる
BEMを使用する上での注意・大枠からBEMで書いていくとElementが多くなりすぎて1つのclassが長くなるので、なるべく使い回せるボタンなどから作成すと使い安い・BEMの重要なことは、ElementかModifierか、といった役割を明確にすることであり、クラス名にアンダースコアを使うかどうかは重要ではない。
メリット・どんなスタイルかわかりやすい。・コードの再利用がしやすい。デメリット・BEMを知らない人と一緒に書くと破綻する・一つのclassが長くなり見づらくなる事もある。
FLOCSS
FLOCSSとは?OCSS、SMACSS、BEMを元に日本人の谷拓樹さんが考えた設計思想。Foundation、Layout、Objectの略
FLOCSSの決まり事・fonundion・layout・object・component・project・utilityで分ける。命名規則・BEMを使用接頭字.l- //layout.c- //component.p- //project.u- //utilty
FLOCSSはSassを使った方がいいSassを使っている想定。importする際にCSSの場合@import url('foundation/base.css');@import url('foundation/reset.css');・・・このimport文だとサイトの読み込みに時間がかかってしまう。Sassを使うと実際にページに読み込まれる時にはimportし終わっていて一つにまとめられたCSSファイルが生成することができます。importの書き方は@import "foundation/base";@import "foundation/header";・・・Sassを使う方がメリットがある。
ディレクトリはこんな感じ├── foundation(デフォルトスタイル)│ ├── _base.scss│ └── _reset.scss├── layout(ページを構成するコンテナ)│ ├── _footer.scss│ ├── _header.scss│ ├── _main.scss│ └── _sidebar.scss└── object(プロジェクトにて、繰り返されるパターンを定義)├── component(再利用できる小さいパーツ)│ ├── _button.scss│ ├── _dialog.scss│ ├── _grid.scss│ └── _media.scss├── project(componentより大きいパーツ)│ ├── _articles.scss│ ├── _gallery.scss│ └── _profile.scss└── utility(スタイルの調整とか)├── _clearfix.scss├── _margin.scss├── _position.scss├── _size.scss└── _text.scss
メリット・SMACSS より Object(コンポーネント)の分け方が細かいのでより保守性が高い・SMACSS、BEMなどのいいとこどりデメリットOOCSS、SMACSS、BEMなどの思想がわからないといけない。
まとめ
1度決めた設計思想は最後までやらないと中身がカオス化する。ただ結局、どんなCSS設計思想だろうがいつか破綻する気がする。。。いかに最小限に留めるかが大事!
Good is good.We provide opportunities to the SEKAI by fusing technology and ideas.テクノロジーとクリエイティブでセカイをより良くするのこと

Recommended

PPTX
掲示板にBootstrap使ってみたよ!
PDF
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
PDF
今必要なCSSアーキテクチャ
PPTX
Oocssとかついでにsmacssとbemの話も
PDF
2017: A CSS Design Odyssey
PPTX
SMACSS入門
PDF
CSS の歩き方
PPTX
CSS Grid Layout の基礎
PDF
Lt41
PDF
Lt40
PDF
Lt39
PDF
LT38テーマ3-2
PDF
LT38テーマ3-1
PDF
LT38テーマ2-2
PDF
LT38テーマ2-1
PDF
LT38テーマ1-2
PDF
LT38テーマ1-1
PDF
lt37
PDF
lt23後半
PDF
lt23前半
PPTX
LT.22 GitHub Actionsを触ってみた話
PPTX
LT.22 機械学習におけるPDCAを回せる環境構築の話
PPTX
LT.21 SPIN法を活用した人心掌握術
PPTX
LT.21 スゴいチームになるフィードバック術
PDF
LT.20 コーディングとマジックナンバー
PDF
LT.20 Wordpress x nuxt.jsで実現するSPA
PDF
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
PDF
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」

More Related Content

PPTX
掲示板にBootstrap使ってみたよ!
PDF
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
PDF
今必要なCSSアーキテクチャ
PPTX
Oocssとかついでにsmacssとbemの話も
PDF
2017: A CSS Design Odyssey
PPTX
SMACSS入門
PDF
CSS の歩き方
PPTX
CSS Grid Layout の基礎
掲示板にBootstrap使ってみたよ!
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
今必要なCSSアーキテクチャ
Oocssとかついでにsmacssとbemの話も
2017: A CSS Design Odyssey
SMACSS入門
CSS の歩き方
CSS Grid Layout の基礎

More from GIG inc.

PDF
Lt41
PDF
Lt40
PDF
Lt39
PDF
LT38テーマ3-2
PDF
LT38テーマ3-1
PDF
LT38テーマ2-2
PDF
LT38テーマ2-1
PDF
LT38テーマ1-2
PDF
LT38テーマ1-1
PDF
lt37
PDF
lt23後半
PDF
lt23前半
PPTX
LT.22 GitHub Actionsを触ってみた話
PPTX
LT.22 機械学習におけるPDCAを回せる環境構築の話
PPTX
LT.21 SPIN法を活用した人心掌握術
PPTX
LT.21 スゴいチームになるフィードバック術
PDF
LT.20 コーディングとマジックナンバー
PDF
LT.20 Wordpress x nuxt.jsで実現するSPA
PDF
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
PDF
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
Lt41
Lt40
Lt39
LT38テーマ3-2
LT38テーマ3-1
LT38テーマ2-2
LT38テーマ2-1
LT38テーマ1-2
LT38テーマ1-1
lt37
lt23後半
lt23前半
LT.22 GitHub Actionsを触ってみた話
LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.21 SPIN法を活用した人心掌握術
LT.21 スゴいチームになるフィードバック術
LT.20 コーディングとマジックナンバー
LT.20 Wordpress x nuxt.jsで実現するSPA
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」

CSS設計

Editor's Notes

  • #5 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #7 機能群データベース登録、削除検索入力フォームなど骨組みMVCなど
  • #9 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #10 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #11 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #12 機能群データベース登録、削除検索入力フォームなど骨組みMVCなど
  • #14 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #15 CoC 設定より規約, つまりルールが大事。MVCモデルに準拠した開発, MVCそれぞれのファイルにそれぞれの役割があり、プロジェクト全体の構成をきれにまとめられる。O/Rマッピング(データベース接続のための仕掛け)はSQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが可能。さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を自動的に取得できる。SQLを書かなくてもデータベースアクセスが可能bakeコマンドを実行するとMVCモデルに沿ってのモデル/ビュー/コントローラのPHPプログラムを自動生成する機能。コマンドのパラメータによってテーブルの一覧・追加・削除・編集画面などのPHPプログラムが自動生成される。データベース定義を元にしたスケルトン(骨組み)の自動生成数値チェックやパスワードの長さが8文字以上あることなどバリデーションルールを定義することができますので、フォームの扱いが非常に楽になる。ルールを記述するだけで入力チェックの開発が可能
  • #16 CoC 設定より規約, つまりルールが大事。MVCモデルに準拠した開発, MVCそれぞれのファイルにそれぞれの役割があり、プロジェクト全体の構成をきれにまとめられる。O/Rマッピング(データベース接続のための仕掛け)はSQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが可能。さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を自動的に取得できる。SQLを書かなくてもデータベースアクセスが可能bakeコマンドを実行するとMVCモデルに沿ってのモデル/ビュー/コントローラのPHPプログラムを自動生成する機能。コマンドのパラメータによってテーブルの一覧・追加・削除・編集画面などのPHPプログラムが自動生成される。データベース定義を元にしたスケルトン(骨組み)の自動生成数値チェックやパスワードの長さが8文字以上あることなどバリデーションルールを定義することができますので、フォームの扱いが非常に楽になる。ルールを記述するだけで入力チェックの開発が可能
  • #17 CoC 設定より規約, つまりルールが大事。MVCモデルに準拠した開発, MVCそれぞれのファイルにそれぞれの役割があり、プロジェクト全体の構成をきれにまとめられる。O/Rマッピング(データベース接続のための仕掛け)はSQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが可能。さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を自動的に取得できる。SQLを書かなくてもデータベースアクセスが可能bakeコマンドを実行するとMVCモデルに沿ってのモデル/ビュー/コントローラのPHPプログラムを自動生成する機能。コマンドのパラメータによってテーブルの一覧・追加・削除・編集画面などのPHPプログラムが自動生成される。データベース定義を元にしたスケルトン(骨組み)の自動生成数値チェックやパスワードの長さが8文字以上あることなどバリデーションルールを定義することができますので、フォームの扱いが非常に楽になる。ルールを記述するだけで入力チェックの開発が可能
  • #18 CoC 設定より規約, つまりルールが大事。MVCモデルに準拠した開発, MVCそれぞれのファイルにそれぞれの役割があり、プロジェクト全体の構成をきれにまとめられる。O/Rマッピング(データベース接続のための仕掛け)はSQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが可能。さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を自動的に取得できる。SQLを書かなくてもデータベースアクセスが可能bakeコマンドを実行するとMVCモデルに沿ってのモデル/ビュー/コントローラのPHPプログラムを自動生成する機能。コマンドのパラメータによってテーブルの一覧・追加・削除・編集画面などのPHPプログラムが自動生成される。データベース定義を元にしたスケルトン(骨組み)の自動生成数値チェックやパスワードの長さが8文字以上あることなどバリデーションルールを定義することができますので、フォームの扱いが非常に楽になる。ルールを記述するだけで入力チェックの開発が可能
  • #19 CoC 設定より規約, つまりルールが大事。MVCモデルに準拠した開発, MVCそれぞれのファイルにそれぞれの役割があり、プロジェクト全体の構成をきれにまとめられる。O/Rマッピング(データベース接続のための仕掛け)はSQL文を書くことなく非常に短い記述でレコードの抽出や書き換えが可能。さらに関連付け(アソシエーション)を記述することで,関連したテーブルの情報を自動的に取得できる。SQLを書かなくてもデータベースアクセスが可能bakeコマンドを実行するとMVCモデルに沿ってのモデル/ビュー/コントローラのPHPプログラムを自動生成する機能。コマンドのパラメータによってテーブルの一覧・追加・削除・編集画面などのPHPプログラムが自動生成される。データベース定義を元にしたスケルトン(骨組み)の自動生成数値チェックやパスワードの長さが8文字以上あることなどバリデーションルールを定義することができますので、フォームの扱いが非常に楽になる。ルールを記述するだけで入力チェックの開発が可能
  • #20 機能群データベース登録、削除検索入力フォームなど骨組みMVCなど
  • #22 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #23 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #24 つまりPHP開発を誰でも簡単に出来るようにしたいねってやつです
  • #26 機能群データベース登録、削除検索入力フォームなど骨組みMVCなど

[8]ページ先頭

©2009-2025 Movatter.jp