SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
Riotaro OKADA
 
Introduction to SASS
Introduction to SASSIntroduction to SASS
Introduction to SASS
Jon Dean
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
 

Mais procurados (20)

AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピングAWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
 
DevOps with Database on AWS
DevOps with Database on AWSDevOps with Database on AWS
DevOps with Database on AWS
 
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
「なにをどこまでやれば?」OWASP SAMMが導く開発セキュリティ強化戦略
 
AWS Black Belt Online Seminar AWS CloudFormation アップデート
AWS Black Belt Online Seminar AWS CloudFormation アップデートAWS Black Belt Online Seminar AWS CloudFormation アップデート
AWS Black Belt Online Seminar AWS CloudFormation アップデート
 
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
入稿ヨシ、ご安全に! CSS組版による商業書籍制作の理想と現実
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
 
Introduction to SASS
Introduction to SASSIntroduction to SASS
Introduction to SASS
 
CSS framework By Palash
CSS framework By PalashCSS framework By Palash
CSS framework By Palash
 
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例[Gree] グリーのソーシャルゲームにおける機械学習活用事例
[Gree] グリーのソーシャルゲームにおける機械学習活用事例
 
AWSのPCI DSSへの取り組みと 押さえておきたい耳寄り情報
AWSのPCI DSSへの取り組みと 押さえておきたい耳寄り情報AWSのPCI DSSへの取り組みと 押さえておきたい耳寄り情報
AWSのPCI DSSへの取り組みと 押さえておきたい耳寄り情報
 
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
 
Lab#13 responsive web
Lab#13 responsive webLab#13 responsive web
Lab#13 responsive web
 
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみたセキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
セキュリティ未経験だったけど入社1年目から Bug Bounty Program 運営に参加してみた
 
Azure ADの外部コラボレーションとBYOID
Azure ADの外部コラボレーションとBYOIDAzure ADの外部コラボレーションとBYOID
Azure ADの外部コラボレーションとBYOID
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
Lab#5 style and selector
Lab#5 style and selectorLab#5 style and selector
Lab#5 style and selector
 

Destaque

プログラマがデザインをがんばってみた
プログラマがデザインをがんばってみたプログラマがデザインをがんばってみた
プログラマがデザインをがんばってみた
だいすけ ふるかわ
 
ノンデザイナーのための配色理論
ノンデザイナーのための配色理論ノンデザイナーのための配色理論
ノンデザイナーのための配色理論
tsukasa obara
 

Destaque (19)

ヒューマンリーダブルな 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 の歩き方
 
モダンな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の話