SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
Twitter: @irration

Blog: http://kinokoru.jp/
こういうクラスが仕様変更を重ねてCSSの随所で誕生。
.messagebox_bold {
border-width: 2px;
font-weight: bold;
}

.another_box_round {
border-width: 5px;
}

.other_box_round_bold {
border-radius: 5px;
border-width: 2px;
font-weight: bold;
}
ケース1: 「あ、サイトの随所にあるボックスの線の太さ
なんだけど、やっぱ3pxにしてくんない?」
.messagebox_bold {
border-width: 2px;
font-weight: bold;
}

.another_box_round {
border-radius: 5px;
}

. other_box_bold {
border-radius: 5px;
border-width: 2px;
font-weight: bold;
}
えっと…このクラスとこのクラスか…
.messagebox_bold {
border-width: 2px;
font-weight: bold;
}

.another_box_round {
border-radius: 5px;
}

. other_box_bold {
border-radius: 5px;
border-width: 2px;
font-weight: bold;
}
ケース2:「随所にあるボックスの枠線の角なんだけど、丸
みを3pxにしてほしいのね」
.messagebox_bold {
border-width: 2px;
font-weight: bold;
}

.another_box_round {
border-radius: 5px;
}

. other_box_bold {
border-radius: 5px;
border-width: 2px;
font-weight: bold;
}
今度はこことここか…
.messagebox_bold {
border-width: 2px;
font-weight: bold;
}

.another_box_round {
border-radius: 5px;
}

. other_box_bold {
border-radius: 5px;
border-width: 2px;
font-weight: bold;
}
でも今度はこうなって、
結局修正箇所が多いのは変わらないんじゃないの?
.messagebox.bold {
border-width: 2px;
}

.another_box.bold {
border-width: 2px;
}

. other_box.bold {
border-width: 2px;
}
ざっくり言うと
前述のOOCSS記法に対して
さらに「モジュール化」という
概念を加えたもの
モジュールごとの管理で
どこを修正すれば何が変わるのかわかりやすくなる。
./layout/header.css
./layout/navigationarea.css
./layout/content.css
./layout/three_column.css
:

./mod/messagebox.css
./mod/form.css
./mod/navigationlist.css
:

./main.css
SMACSSの詳細
日本語・電子書籍版(有料$15)
https://smacss.com/ja
英語・Web版(無料)
http://smacss.com/
モジュール化で修正は楽になるけど
一々mainファイルに統合するの
面倒だよ!
Grunt ?

とにかく色んなものが
自動化できるよ!
(例) JS の uglify, 複数ファイルの
結合, ファイル変更の監視, …
おまけ
SaSS(SCSS) + Compass
CSSで変数使ったり、
ネストできたり、
OOCSSと親和性が高い。
Gruntでコンパイルの自動化可能。
例えば・・・
CSS

SaSS(SCSS)
.box{

.box{
/* box スタイルの記述 */
}

/* box スタイルの記述 */
.inner {
/* .box .inner スタイルの記述 */

.box .inner {
/* .box .inner スタイルの記述 */
}

.deeper {
/* .box .inner .deeper スタイルの記述*/
}

.box .inner .deeper {
/* .box .inner .deeper スタイルの記述 */
}

}
&.green {
/* .box.green スタイルの記述 */
}

box.green {
/* .box.green スタイルの記述 */
}
}
例えば・・・
SaSS(SCSS)

CSS
.header_inner {
width: 960px;
}
.nav {
width: 960px;
}
.footer_inner {
width: 960px;
}
:
:

$content_width: 960px;
.header_inner {
width: $content_width;
}
.nav {
width: $content_width;
}
.footer_inner {
width: $content_width;
}
:
:
修正が楽になる!
修正漏れが減る!
というわけで…
OOCSSをはじめると
良いことあるかも。
ありがとうございました

Weitere ähnliche Inhalte

Andere mochten auch

-入門- enchant.js でゲームを作ろう
-入門- enchant.js でゲームを作ろう-入門- enchant.js でゲームを作ろう
-入門- enchant.js でゲームを作ろう
nico0927
 
ウェブデザインの本質と、構成要素
ウェブデザインの本質と、構成要素ウェブデザインの本質と、構成要素
ウェブデザインの本質と、構成要素
vanillate cocoa
 

Andere mochten auch (20)

Webアクセシビリティの標準規格「JIS X 8341-3:2010」準拠のための試験方法(最新版)
Webアクセシビリティの標準規格「JIS X 8341-3:2010」準拠のための試験方法(最新版)Webアクセシビリティの標準規格「JIS X 8341-3:2010」準拠のための試験方法(最新版)
Webアクセシビリティの標準規格「JIS X 8341-3:2010」準拠のための試験方法(最新版)
 
レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎レコメンデーション(協調フィルタリング)の基礎
レコメンデーション(協調フィルタリング)の基礎
 
Photoshopで効率よくデザインしよう!
Photoshopで効率よくデザインしよう!Photoshopで効率よくデザインしよう!
Photoshopで効率よくデザインしよう!
 
-入門- enchant.js でゲームを作ろう
-入門- enchant.js でゲームを作ろう-入門- enchant.js でゲームを作ろう
-入門- enchant.js でゲームを作ろう
 
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
 
ウェブデザインの本質と、構成要素
ウェブデザインの本質と、構成要素ウェブデザインの本質と、構成要素
ウェブデザインの本質と、構成要素
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
 
コーディングが上達するコツ
コーディングが上達するコツコーディングが上達するコツ
コーディングが上達するコツ
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門ノンプログラマーのためのjQuery入門
ノンプログラマーのためのjQuery入門
 
Webライティング11のルール
Webライティング11のルールWebライティング11のルール
Webライティング11のルール
 
これくらいはやってほしいWebデザイン
これくらいはやってほしいWebデザインこれくらいはやってほしいWebデザイン
これくらいはやってほしいWebデザイン
 
PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識
 
ウェブデザインに応用する4つの基本原則
ウェブデザインに応用する4つの基本原則ウェブデザインに応用する4つの基本原則
ウェブデザインに応用する4つの基本原則
 
Webデザインのウソ・ホント ~ Web らしくデザインするためのヒント
Webデザインのウソ・ホント ~ Web らしくデザインするためのヒントWebデザインのウソ・ホント ~ Web らしくデザインするためのヒント
Webデザインのウソ・ホント ~ Web らしくデザインするためのヒント
 
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作るBootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
 
UI設計の土台になる考え方-インテリジェントネット社内勉強会
UI設計の土台になる考え方-インテリジェントネット社内勉強会UI設計の土台になる考え方-インテリジェントネット社内勉強会
UI設計の土台になる考え方-インテリジェントネット社内勉強会
 
Photoshopで学ぶ、一生使える色調補正 先生:藤本 圭先生
Photoshopで学ぶ、一生使える色調補正 先生:藤本 圭先生Photoshopで学ぶ、一生使える色調補正 先生:藤本 圭先生
Photoshopで学ぶ、一生使える色調補正 先生:藤本 圭先生
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

CSSにもオブジェクト指向を - OOCSSことはじめ