SlideShare a Scribd company logo
OOCSSとか 
ついでにSMACSSとBEMも 
Created by Yumi Hashizume / @uniq 
20140702
お前、誰よ 
• uniqだよー 
• デザイナーだよー 
• いまは夏コミ原稿中
これから話すこと 
• しんどいCSS 
• 私なりのOOCSS 
• SMACSSの紹介 
• BEMの紹介
こんな事あるあるー 
黄色いお知らせエリアが欲しいよ 
.information_area { 
width:960px; 
padding: 10px; 
border: 1px solid #E6E5DA; 
background-color: #FFFCE2; 
border-radius: 3px; 
}
さらに 
緑のお知らせエリアも欲しいので、おなしゃす! 
.information_area { 
width:960px; 
padding: 10px; 
border: 1px solid #E6E5DA; 
background-color: #FFFCE2; 
border-radius: 3px; 
} 
.information_green_area { 
width:960px; 
padding: 10px; 
border: 1px solid #5BC077; 
background-color: #B4ECAC; 
border-radius: 3px 
}
さらにさらに 
.information_area { 
width:960px; 
padding: 10px; 
border: 1px solid #E6E5DA; 
background-color: #FFFCE2; 
border-radius: 3px; 
} 
.information_green_area { 
width:960px; 
padding: 10px; 
border: 1px solid #5BC077; 
background-color: #B4ECAC; 
border-radius: 3px 
} 
.alert_area { 
width:960px; 
padding: 10px; 
border: 1px solid #FFA115; 
background-color: #E00; 
color:#fff; 
border-radius: 3px 
}
コードが重複しまくり 
.information_area { 
width:960px; 
padding: 10px; 
border: 1px solid #E6E5DA; 
background-color: #FFFCE2; 
border-radius: 3px; 
} 
.information_green_area { 
width:960px; 
padding: 10px; 
border: 1px solid #5BC077; 
background-color: #B4ECAC; 
border-radius: 3px 
} 
.alert_area { 
width:960px; 
padding: 10px; 
border: 1px solid #FFA115; 
background-color: #E00; 
color:#fff; 
border-radius: 3px 
}
さらにさらにさらに 
ポップアップでは幅600pxにしたいとか… 
このページのは文字が大きくしたいとか… 
3カラムバージョンも欲しいとか… 
.information_area { 
width:960px; 
padding: 10px; 
border: 1px solid #E6E5DA; 
background-color: #FFFCE2; 
border-radius: 3px; 
} 
.popup .information_area { 
width:600px; 
} 
.information_green_area { 
width:960px; 
padding: 10px; 
border: 1px solid #5BC077; 
background-color: #B4ECAC; 
border-radius: 3px 
} 
.event_page .information_green_area { 
font-size:24px; 
} 
.alert_area { 
width:960px; 
padding: 10px; 
border: 1px solid #FFA115; 
background-color: #E00; 
color:#fff; 
border-radius: 3px 
} 
.col_3.information_area, 
.col_3.information_green_area, 
.col_3.alert_area { 
width:320px; 
}
もうぐちゃぐちゃ 
• メンテしにくい 
• 拡張しにくい 
• コードも長いので描画遅い
そこでOOCSS 
共通なものは共通なもの同士で 
オブジェクトとしてまとめる 
• 作業効率アップ 
• メンテナンス性アップ 
• 描画速度アップ
つまりこんな感じ 
<div class="row"> 
<div class="container"> 
<div class="col_3"><div class="box box_imformation">いわゆる普通のお知らせ</div></div> 
<div class="col_3"><div class="box box_success">成功しちゃったお知らせ</div></div> 
<div class="col_3"><div class="box box_alert">マジでヤバいお知らせ</div> 
</div> 
</div> 
.row { /*bootstrap参考*/ } 
.container { width:960px; } 
.container_popup { width:600px; } 
.font_24 {font-size:24px;} /*特例的なサイズ変更は、昔からある有りがちcommon.cssを*/ 
.col_3 { width:33.3%} 
.box { 
padding: 10px; 
border-radius: 3px; 
} 
.box_information { 
border: 1px solid #E6E5DA; 
background-color: #FFFCE2; 
} 
.box_success { 
border: 1px solid #5BC077; 
background-color: #B4ECAC; 
} 
.box_alert { 
border: 1px solid #FFA115; 
background-color: #E00; 
color:#fff; 
}
ぜんぜんセマンティッ 
クじゃない!! 
ある程度、妥協しましょう 
…柔軟に生きよう。社会は厳しい。。。 
そこそこセマンティックであれば良い
STRUCTURE とSKIN を分け 
て設定する 
• structure 
• 位置とか。margin, padding, position... 
• カタチっぽいclass名にする 
• skin 
• 色とか。デザインっぽい効果とか。color, background, border... 
• デザインっぽい、もしくはセマンティックなclass名 
※ サイトによって解釈は違う
例えるなら 
だめな例 
<!-- だめな例--> 
<div class="リラックマのお皿にのったケチャップかけたチーズ入りオムレツ"> 
だめな例 
</div> 
良い例 
<!-- 良い例--> 
<div class="リラックマのお皿"> 
<div class="ケチャップチーズオムレツ"> 
良い例 
</div> 
</div>
いままでは… 
要素を見て、どんなスタイルか把握していた
これからは… 
class名を見て、どんなスタイルか把握できるようにして 
いく
あとID やめよう 
jsやページ内リンクに使うのはありだけど、style指定する 
ために使うのは、余程の理由がない限りやめていきたい
CSSでID使うと困る点 
上書きが大変。いちいちIDつけないと上書きできない。 
ID効果は強いんです。 
#main a {color:#000;} 
a.btn, /* 全てのページのbtn文字色を白くしたい*/ 
#main a.btn { /* mainのボタンにも効果が必要なので、こちらも指定しないといけない*/ 
color:#fff; 
} 
#main .event_list a {color:#f00;} 
#main .page_join a {color:#999;}
IDのない幸せな世界 
上書きが楽。 
a {color:#000;} 
a.btn {color:#fff;} 
.event_list a {color:#f00;} 
.page_join a {color:#999;}
言いたいこと 
• 継ぎ足し継ぎ足しのCSSはツライ 
• OOCSSの精神で設計しとこ 
• CSSを修正するときは、「足す」のではなく、「 
引く」「整理する」をしていこう
SMACSS の紹介 
SMACSS(スマックス)
SMACSSのCSSカテゴリ 
• Base 
• デフォルトスタイル 
• Layout 
• ページをエリアに分割したもの(接頭語:l-) 
• Module 
• 再利用可能なパーツ 
• State 
• LayoutやModuleの特定の状態(接頭語:is-) 
• jsも使いますよー 
• Theme 
• ブログのテーマ的な
SMACSSのイメージ
BEM の紹介
BEMの基本 
• Block :ページを構成する独立パーツ 
• Element :Black内の一部として役割を果たすも 
の 
• Modifire :BlockやElementの状態・属性
BEMの命名規則 
.Block__Element-Modifire
BEMのイメージ
事例紹介
THE END 
美味しいお酒を飲むために効率よく仕事したい

More Related Content

What's hot (20)

PDF
HTML5マークアップの心得と作法
Futomi Hatano
 
PDF
使いやすいWordPressのためのCSSのつくりかた
Hiroshi Urabe
 
PDF
今からハジメるHTML5マークアップ
SwapSkills
 
PDF
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
PPTX
SMACSS入門
iPride Co., Ltd.
 
PDF
CSS設計のお勉強
MarlboroLand
 
PDF
設計から実装まで、今すぐ始める高速化
masaaki komori
 
PDF
WordPress を使いこなそう
Wataru OKAMOTO
 
PDF
HTML5, きちんと。
Masataka Yakura
 
PDF
今からハジメるHTML5プログラミング
SwapSkills
 
PDF
今日から使える! HTML/CSS/JSの シンプルテクニック15選
Horiguchi Seito
 
PPTX
第10回勉強会 CSS設計について
takumaro web
 
PPTX
css基本。
web12
 
PDF
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
Atsushi Tadokoro
 
PDF
HTML5 & The Web Platform
Masataka Yakura
 
PDF
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
Yoshiki Hayama
 
PDF
Polymerで作る次世代ウェブサイト
Eiji Kitamura
 
KEY
コーディングが上達するコツ
evol-ni
 
PDF
⑯jQueryをおぼえよう!その2
Nishida Kansuke
 
PDF
Web Platform -- Moving Forward!
Masataka Yakura
 
HTML5マークアップの心得と作法
Futomi Hatano
 
使いやすいWordPressのためのCSSのつくりかた
Hiroshi Urabe
 
今からハジメるHTML5マークアップ
SwapSkills
 
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
 
SMACSS入門
iPride Co., Ltd.
 
CSS設計のお勉強
MarlboroLand
 
設計から実装まで、今すぐ始める高速化
masaaki komori
 
WordPress を使いこなそう
Wataru OKAMOTO
 
HTML5, きちんと。
Masataka Yakura
 
今からハジメるHTML5プログラミング
SwapSkills
 
今日から使える! HTML/CSS/JSの シンプルテクニック15選
Horiguchi Seito
 
第10回勉強会 CSS設計について
takumaro web
 
css基本。
web12
 
情報編集(Web) HTML5とは何か? HTML5、はじめの一歩
Atsushi Tadokoro
 
HTML5 & The Web Platform
Masataka Yakura
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
Yoshiki Hayama
 
Polymerで作る次世代ウェブサイト
Eiji Kitamura
 
コーディングが上達するコツ
evol-ni
 
⑯jQueryをおぼえよう!その2
Nishida Kansuke
 
Web Platform -- Moving Forward!
Masataka Yakura
 

Viewers also liked (17)

PDF
What's Object-Oriented CSS (japanese)
shinobu tsutsui
 
PDF
Bem Study
Haraguchi Go
 
PDF
モダンCSS設計と BEMという開発手法
Kenji Karahashi
 
PDF
CSSの新しい設計思想 PRECSSを作りました
Atsushi Handa
 
PDF
CSSにもオブジェクト指向を - OOCSSことはじめ
Nisei Kimura
 
PDF
BEM it!
Max Shirshin
 
KEY
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
Nicole Sullivan
 
PDF
コンポーネント指向と余白の設計
Manabu Yasuda
 
PPT
מביישן לפלרטטן
Stas Segin
 
PPT
Inleiding \'Digivaardig\' bij Koninklijke Visio/OTC op 18 juni 2012
Nederlands Centrum Jeugdgezondheid
 
PDF
Brandon Steiner: Speaker
Brandon Steiner
 
PPT
Sliven1
niod
 
PPTX
Excess hair growth
hpinn
 
PDF
Nerve cell
Biobiome
 
PPT
Guvenlik genel bakis
ahmetziya
 
PDF
ccnp route 642 902
Yashwant Aditya
 
PDF
חוברת קורס
Stas Segin
 
What's Object-Oriented CSS (japanese)
shinobu tsutsui
 
Bem Study
Haraguchi Go
 
モダンCSS設計と BEMという開発手法
Kenji Karahashi
 
CSSの新しい設計思想 PRECSSを作りました
Atsushi Handa
 
CSSにもオブジェクト指向を - OOCSSことはじめ
Nisei Kimura
 
BEM it!
Max Shirshin
 
The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax ...
Nicole Sullivan
 
コンポーネント指向と余白の設計
Manabu Yasuda
 
מביישן לפלרטטן
Stas Segin
 
Inleiding \'Digivaardig\' bij Koninklijke Visio/OTC op 18 juni 2012
Nederlands Centrum Jeugdgezondheid
 
Brandon Steiner: Speaker
Brandon Steiner
 
Sliven1
niod
 
Excess hair growth
hpinn
 
Nerve cell
Biobiome
 
Guvenlik genel bakis
ahmetziya
 
ccnp route 642 902
Yashwant Aditya
 
חוברת קורס
Stas Segin
 
Ad

Similar to Oocssとかついでにsmacssとbemの話も (20)

ZIP
実践Sass 前編
Azusa Tomita
 
PPTX
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
lyca chigyo
 
PDF
First sass
Toshiaki Sasaki
 
PDF
壊れやすいCSS
Masahiro Kobayashi
 
PDF
Sassをはじめからていねいに<概要−基礎編>
Horiguchi Seito
 
KEY
compassで簡単! CSS3を手軽に利用する
Kazuya Hiruma
 
PDF
React で CSS カプセル化の可能性を考える
Yutaro Miyazaki
 
PDF
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
Naoki Matsuda
 
PDF
メディア芸術基礎 Ⅰ 第5回:CSSレイアウト
Atsushi Tadokoro
 
PPTX
Sass紹介
Daisuke Hirayama
 
PDF
Firefox OSアプリ 「ModeView」
Hideki Akiba
 
PDF
CSS3の最新事情
Makoto Kato
 
PDF
Sass/Compass講習会
Beeworks
 
PDF
㉗HTML5+jQueryでお絵かき
Nishida Kansuke
 
PDF
Sass introduction (jscafe 10)
Ryuma Tsukano
 
PDF
大阪Node学園八時限目 「コーディングのためのless - 基礎編 -」
Shunsuke Watanabe
 
PDF
Sassを使ってみよう
GIG inc.
 
PPTX
HTML5 on ASP.NET
Fujio Kojima
 
PDF
Less - first step
Kohki Nakashima
 
PDF
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara
 
実践Sass 前編
Azusa Tomita
 
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
lyca chigyo
 
First sass
Toshiaki Sasaki
 
壊れやすいCSS
Masahiro Kobayashi
 
Sassをはじめからていねいに<概要−基礎編>
Horiguchi Seito
 
compassで簡単! CSS3を手軽に利用する
Kazuya Hiruma
 
React で CSS カプセル化の可能性を考える
Yutaro Miyazaki
 
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
Naoki Matsuda
 
メディア芸術基礎 Ⅰ 第5回:CSSレイアウト
Atsushi Tadokoro
 
Sass紹介
Daisuke Hirayama
 
Firefox OSアプリ 「ModeView」
Hideki Akiba
 
CSS3の最新事情
Makoto Kato
 
Sass/Compass講習会
Beeworks
 
㉗HTML5+jQueryでお絵かき
Nishida Kansuke
 
Sass introduction (jscafe 10)
Ryuma Tsukano
 
大阪Node学園八時限目 「コーディングのためのless - 基礎編 -」
Shunsuke Watanabe
 
Sassを使ってみよう
GIG inc.
 
HTML5 on ASP.NET
Fujio Kojima
 
Less - first step
Kohki Nakashima
 
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara
 
Ad

More from Yumi uniq Ishizaki (10)

PDF
スクラムする前に知って欲しいアジャイルさんっぽいこと
Yumi uniq Ishizaki
 
PDF
デザイナーにGitは必要?
Yumi uniq Ishizaki
 
PDF
connpass design at BPStudy #88
Yumi uniq Ishizaki
 
PDF
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
Yumi uniq Ishizaki
 
PDF
絵描きさんあるあるPhotoshop技 DIST3
Yumi uniq Ishizaki
 
PDF
真のレシポンシブって何だろう
Yumi uniq Ishizaki
 
PDF
とっさのデザイン〜ボタン編〜
Yumi uniq Ishizaki
 
PPTX
アイディア発想法とかモノ作りを初める前にやること
Yumi uniq Ishizaki
 
KEY
とある色の決め方
Yumi uniq Ishizaki
 
PPTX
Semantic html が止まらない
Yumi uniq Ishizaki
 
スクラムする前に知って欲しいアジャイルさんっぽいこと
Yumi uniq Ishizaki
 
デザイナーにGitは必要?
Yumi uniq Ishizaki
 
connpass design at BPStudy #88
Yumi uniq Ishizaki
 
Pythonと出会ったデザイナーの話 #PyLadiesTokyo
Yumi uniq Ishizaki
 
絵描きさんあるあるPhotoshop技 DIST3
Yumi uniq Ishizaki
 
真のレシポンシブって何だろう
Yumi uniq Ishizaki
 
とっさのデザイン〜ボタン編〜
Yumi uniq Ishizaki
 
アイディア発想法とかモノ作りを初める前にやること
Yumi uniq Ishizaki
 
とある色の決め方
Yumi uniq Ishizaki
 
Semantic html が止まらない
Yumi uniq Ishizaki
 

Recently uploaded (13)

PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 

Oocssとかついでにsmacssとbemの話も