SlideShare a Scribd company logo
1 of 28
Download to read offline
本当は怖いCSSの話
大規模サイトにおける
Makoto Inoue Talk of CSS fearful in fact
井上 誠
三重県伊勢市出身
金沢美大工芸科卒業
DMM.com Labo勤務
入社8年目
デザイン部チーフ
twitter: @in0in0
facebook: http://www.facebook.com/in0in0
Makoto Inoue Talk of CSS fearful in fact
CSSの何が怖いの?
A thing with what dreadful of CSS?
影響範囲が広い
エラーを吐かない
id,classがサイト中に分散する
小規模だと問題は起こりにくい
規模が大きくなるとトラブルが…
確認する
<p class=”btn check”>
チェックボックス✓
<input type=”checkbox”
class=”check”>
段落です
p span{color:blue;
margin:20px}
<p class=”btn”>
<span>ボタン</span></p>
ボタン
定義済みのid,class名をつけた
要素の再定義で崩れた
ボタン
check!
ボタン
check!
ボタン
check!
hoge.html
fuga.html
moge.html
ボタン
check!
hage.html
ボタン
ボタン
ボタン
.button{
...}
.bt{...}
.botan{
...}
ボタン
.btn{...}
影響範囲が大きく修正しづらい
無計画にコピペされている
共通ボタン 例外ボタン共通ボタン
デバイスの向きを変えられる
ユーザはいつでも、さまざまな理由でiOSデバイスの向きを変えることができます。たとえば、実行
する操作が縦長の向きのほうが自然に感じられる場合もあれば、横長のほうがより多くの情報を表示
できると感じられる場合もあります。デバイスの向きを変える理由が何であれ、アプリケーションの
主要な機能が見やすいままであることをユーザは期待します。
ユーザはホーム(Home)画面からアプリケーションを起動することが多く、そのためすべてのアプリ
ケーションが同じ向きで開始することを期待する傾向があります。iPhoneとiPadではホーム(Home)画
面の表示の仕方が異なるため、このような期待がアプリケーションに与える影響も異なります。
●
直接操作
ユーザは、画面上のオブジェクトを、別のコントロールを通じてではなく直接操作すると、より深く
作業に関わることになり、アクションの結果をより簡単に理解できます。iOSユーザは、Multi-Touch
インターフェイスのおかげで、直接操作の感覚をより高度に感じることができます。ジェスチャを使
用することで、ユーザはマウスなどの手段を用いることなく画面に表示されるオブジェクトにタッチ
することができるため、それらオブジェクトに対してより強い親しみの感覚や制御している感覚を持
ちます。
たとえば、ズームのコントロールをタップする代わりに、ピンチのジェスチャを通じてコンテンツの
領域を直接拡大、または縮小することができます。ゲームでは、プレーヤーが画面上のオブジェクト
を直接動かしたり、対話をしたりします。たとえば、ゲームによっては、回して開くダイヤル錠を表
示するものなどがあります。
iOSアプリケーションでは、以下の場合にユーザが直接操作を体験できます。
● 画面上のオブジェクトに影響を与えるため、デバイスを回転させたり、動かしたりするとき
● ジェスチャを使用して画面上のオブジェクトを操作するとき
● 自身のアクションが目に見える結果を即座にもたらす様子を見ることができるとき
フィードバック
ディスプレイはサイズに関係なくもっとも重要
iOSデバイスのディスプレイは、ユーザ体験の中心的位置を占めています。ユーザはきれいな文字、
グラフィック、メディアを見るだけでなく、(画面を見ることができなくても)Multi-Touch画面と指
で物理的にやり取りして操作を進めます。
iOSデバイスにはさまざまな寸法や解像度のディスプレイがありますが、使い勝手に関する限り、考
え方はいずれも同じです。
● タップ可能なUI要素の快適な最小サイズは44×44ポイントです。
● ユーザは一般に、アプリケーションアートワークの質を敏感に意識します。
● 画面表示が良好であれば、デバイスの違いを意識せず、本来の作業に集中できます。
注意: ピクセルとは、画像編集アプリケーションにおいて、デバイスの画面のサイズや作成
デバイスの向きを変えられる
ユーザはいつでも、さまざまな理由でiOSデバイスの向きを変えることができます。たとえば、実行
する操作が縦長の向きのほうが自然に感じられる場合もあれば、横長のほうがより多くの情報を表示
できると感じられる場合もあります。デバイスの向きを変える理由が何であれ、アプリケーションの
主要な機能が見やすいままであることをユーザは期待します。
ユーザが対話するのは一度に1つのアプリケーション
フォアグラウンドに表示できるのは一度に1つのアプリケーシ
ションから別のアプリケーションに切り替えると、前のアプ
し、そのユーザインターフェイスも表示されなくなります。こ
ユーザが再起動または停止するまで、アプリケーションをバ
ます。
ほとんどのアプリケーションは、バックグラウンドに移行す
状態のアプリケーションはマルチタスクUIに表示されるので、
易に切り替えることができます。マルチタスクUIは画面の一番
ションのUIまたはホーム(Home)画面の下に表示されます(次
リ
ケーションの場合)。
共通化しすぎて最適化できない
レギュレーションが足かせに
全部実際に起こりました
これなら怖くない!
大規模サイトCSS設計の勘所
The vital point of a large-scale site CSS design
指定の衝突、ダメ絶対!1
全体共有のセレクタは明確に
.worklist{...}
場所をなるべく限定する
#list .worklist p
#list p
.d-worklist{...}
例:接頭辞で明確にして衝突を回避する
将来の修正、変更を考える2
id,classの命名は意味的に
.caution{color:red}
.red{color:red}
指定がなくてもclassをつける
<div class=”listbox”>
<div>
組織の要件に合わせた
CSS設計をする
3
ストラクチャタイプ
HTML構造を重視、構造に沿ったCSS指定をしていく
組織の要件に合わせた
CSS設計をする
3
ストラクチャタイプ
HTML構造を重視、構造に沿ったCSS指定をしていく
#page-top #list {…}
#page-top #list .worklist li {…}
<body id="page-top">
  <div id="list">
    <ul class=”worklist”>
<li>...</li>
</ul>
CSS
HTML
・ページごとに最適化が可能
・デザイン修正のみならCSSだけで対応できる
メリット
・パーツを使いまわしにくい
・記述が冗長で開発、修正に時間がかかる
デメリット
デザイン、最適化重視の要件
sassで
解決
ストラクチャタイプ
HTML構造を重視、構造に沿ったCSS指定をしていく
組織の要件に合わせた
CSS設計をする
3
モジュールタイプ
可搬性のあるパーツ単位でHTMLとCSSを作成する
モジュールタイプ
可搬性のあるパーツ単位でHTMLとCSSを作成する
ul.worklist li {…}
ul.favoritelist li {…}
<ul class="worklist">
  <li>...
</ul>
<ul class="favoritelist">
  <li>...
</ul>
CSS
HTML
スピード、保守コスト重視の要件
モジュールタイプ
可搬性のあるパーツ単位でHTMLとCSSを作成する
・パーツ一覧からコピペで開発ができる
・デザイン統一がしやすい
メリット
・パーツ修正の検証範囲が広い
・ページ単位のデザイン最適化がしにくい
デメリット
組織の要件に合わせた
CSS設計をする
3
オブジェクトタイプ
class指定の組み合わせでパーツの見た目を定義する
オブジェクトタイプ
class指定の組み合わせでパーツの見た目を定義する
.headline{font-size:18px}
.caution{color:red; font-weight:bold}
.center{text-align:center}
<p class="headline caution center">...
<div class="caution center">...
CSS
HTML
フレームワーク重視の要件
オブジェクトタイプ
class指定の組み合わせでパーツの見た目を定義する
・CSSファイルを触らずに開発ができる
・コピペで開発ができる
メリット
・CSS設計にスキルを要する
・CSS修正による影響予測が困難
デメリット
組み合わせて使用してOK
単一ページ:「ストラクチャタイプ」
サイト全体:「モジュールタイプ」
未使用 :「オブジェクトタイプ」
うちの要件には合わなかった
DMMでは…
まとめ
・大規模サイトでは運用を考慮する
・CSS指定の衝突は絶対避ける
・組織の要件に合わせて設計する
ご清聴ありがとうございました
Makoto Inoue Talk of CSS fearful in fact

More Related Content

What's hot

CSS3 2D/3D transform
CSS3 2D/3D transformCSS3 2D/3D transform
CSS3 2D/3D transform
Kenny Lee
 

What's hot (20)

CSS
CSSCSS
CSS
 
What is front-end development ?
What is front-end development ?What is front-end development ?
What is front-end development ?
 
HTML & CSS Masterclass
HTML & CSS MasterclassHTML & CSS Masterclass
HTML & CSS Masterclass
 
SMACSS入門
SMACSS入門SMACSS入門
SMACSS入門
 
CSS Positioning and Features of CSS3
CSS Positioning and Features of CSS3CSS Positioning and Features of CSS3
CSS Positioning and Features of CSS3
 
Css types internal, external and inline (1)
Css types internal, external and inline (1)Css types internal, external and inline (1)
Css types internal, external and inline (1)
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
[부스트캠프 Tech Talk] 김제우_짝코딩(Pair Programming)
[부스트캠프 Tech Talk] 김제우_짝코딩(Pair Programming)[부스트캠프 Tech Talk] 김제우_짝코딩(Pair Programming)
[부스트캠프 Tech Talk] 김제우_짝코딩(Pair Programming)
 
CSS Grid
CSS GridCSS Grid
CSS Grid
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
Javascript
JavascriptJavascript
Javascript
 
소프트웨어 학습 및 자바 웹 개발자 학습 로드맵
소프트웨어 학습 및 자바 웹 개발자 학습 로드맵소프트웨어 학습 및 자바 웹 개발자 학습 로드맵
소프트웨어 학습 및 자바 웹 개발자 학습 로드맵
 
CSS Basics
CSS BasicsCSS Basics
CSS Basics
 
Introduction to Bootstrap: Design for Developers
Introduction to Bootstrap: Design for DevelopersIntroduction to Bootstrap: Design for Developers
Introduction to Bootstrap: Design for Developers
 
CSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and moreCSS - OOCSS, SMACSS and more
CSS - OOCSS, SMACSS and more
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자
 
Line Height
Line HeightLine Height
Line Height
 
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥
파이콘 한국 2019 - 파이썬으로 서버를 극한까지 끌어다 쓰기: Async I/O의 밑바닥
 
HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)HTML/CSS Crash Course (april 4 2017)
HTML/CSS Crash Course (april 4 2017)
 
CSS3 2D/3D transform
CSS3 2D/3D transformCSS3 2D/3D transform
CSS3 2D/3D transform
 

Viewers also liked

ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
だいすけ ふるかわ
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
 

Viewers also liked (20)

ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット
 
メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計
 
CSS の歩き方
CSS の歩き方CSS の歩き方
CSS の歩き方
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
 
今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ今必要なCSSアーキテクチャ
今必要なCSSアーキテクチャ
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
 
Thinking about CSS Architecture
Thinking about CSS ArchitectureThinking about CSS Architecture
Thinking about CSS Architecture
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
 
HTML5, きちんと。
HTML5, きちんと。HTML5, きちんと。
HTML5, きちんと。
 
プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
 
Web design
Web designWeb design
Web design
 
ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座ノンデザイナーのためのWebデザイン講座
ノンデザイナーのためのWebデザイン講座
 
プログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみたプログラマがWebデザインについて考えてみた
プログラマがWebデザインについて考えてみた
 
Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法Webデザインのトーン&マナーを導き出す手法
Webデザインのトーン&マナーを導き出す手法
 
デザインのためのデザイン
デザインのためのデザインデザインのためのデザイン
デザインのためのデザイン
 
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
WordCamp Kansai 2015 デザイン初心者向けワークショップ〜 ブログデザインを実際に作ってみよう〜
 
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえようノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
ノンデザイナーのための「デザインの判断」はとりあえずコレだけおさえよう
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
 

大規模サイトにおける本当は怖いCSSの話