Movatterモバイル変換


[0]ホーム

URL:


Hiroshi Urabe, profile picture
Uploaded byHiroshi Urabe
819 views

まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。

WP-D Week Day 2 「CSSについてLevel Up!」での発表資料です。

Embed presentation

Download to read offline
まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。2016.4.12 @WP-D Week Day 22016.4.12 @WP-D Week Day 2 1
whoamiじこしょうかい2016.4.12 @WP-D Week Day 2 2
Toro_Unit占部 紘 (うらべ ひろし)Frontend Engineer / Web DesignerGithub: @torounitTwitter: @Toro_UnitFacebook: fb.me/torounitWEB Site: https://torounit.com2016.4.12 @WP-D Week Day 2 3
長野県松本市ってところで、フリーランスしてます。でも群馬県出身2016.4.12 @WP-D Week Day 2 4
Profile• WordPress な人です。パーマリンクのプラグイン作ったり、コアコントリビューターになったり、いろいろやってます。• CSS絡みでは、使いやすいWordPressのためのCSSのつくりかた とかで登壇したり、Basis というCSSフレームワークにプルリクを送りつけたりしてました。2016.4.12 @WP-D Week Day 2 5
では本題。2016.4.12 @WP-D Week Day 2 6
皆さん、こんな経験はありませんか?2016.4.12 @WP-D Week Day 2 7
• 1年以上前に納品した案件の修正依頼。• 誰が書いたのかも良く解らない引き継ぎ案件。• 1万行を余裕で超えてるCSS。• ほとんどは、コピペコードの狂喜乱舞。• しかも細かいところが少しずつ違ってる。2016.4.12 @WP-D Week Day 2 8
「既存のCSS?誰が読むか!」2016.4.12 @WP-D Week Day 2 9
結果2016.4.12 @WP-D Week Day 2 10
増殖する の、「fix.css」, 「append.css」,「custom.css」, etc...2016.4.12 @WP-D Week Day 2 11
そして生まれる important! の腐海。もはや誰も触れない CSS の誕生。2016.4.12 @WP-D Week Day 2 12
2016.4.12 @WP-D Week Day 2 13
別にこれって、ここ最近の話じゃ無いよね ...2016.4.12 @WP-D Week Day 2 14
人類は「CSSは難しい!」ということにいい加減に気づくべき。2016.4.12 @WP-D Week Day 2 15
そんな昨今ですが、マルチデバイス対応、レスポンシブだとかで、ますます難しくなるCSS2016.4.12 @WP-D Week Day 2 16
• IEの闇からいい加減抜け出したと思ったのに…• だれだよ!!! HTML/CSSは簡単だとか言った奴は!!!2016.4.12 @WP-D Week Day 2 17
はい。2016.4.12 @WP-D Week Day 2 18
Q. では、人類はどうやってCSSと立ち向かえば良いのか?2016.4.12 @WP-D Week Day 2 19
A. カオス化しないようにCSSを書く!2016.4.12 @WP-D Week Day 2 20
カオス化しないようなCSS• ページ・要素の追加が簡単にできること。ある程度 CSS 書かなくても出来るようにすること。そもそもCSSを追記しなければ腐海化しない。• 保守・デザイン変更が簡単にできること。どこをいじれば良いのかが、わかりやすいこと。不要な CSS が残りづらい、影響し辛いようにすれば、CSSの上書き地獄、important 地獄は防げる。2016.4.12 @WP-D Week Day 2 21
• 人間にとって読みやすいこと。そもそも、人間が読む気にならない or 読めない CSS が腐海化しないわけがない。というか既に腐海。2016.4.12 @WP-D Week Day 2 22
どうやって?2016.4.12 @WP-D Week Day 2 23
CSS で開発する上での戦略を立てる。2016.4.12 @WP-D Week Day 2 24
この戦略 = 「CSS設計」2016.4.12 @WP-D Week Day 2 25
Google のエンジニアの Philip Walton 氏がこの件について書いた記事がこちら。CSS Architecture — Philip Walton• 日本語版:CSS Architecture2016.4.12 @WP-D Week Day 2 26
Philip Walton 氏の言う良い CSS の条件とは。• 予測しやすい (PIEの原則)• 再利用しやすい (DRY原則)• 保守しやすい / 拡張しやすい (オープン・クローズドの原則)2016.4.12 @WP-D Week Day 2 27
そのために、実践していること。2016.4.12 @WP-D Week Day 2 28
1. ちゃんと OOCSS やる2016.4.12 @WP-D Week Day 2 29
OOCSSの2大原則1. 構造と見た目を分離。2. コンテナとコンテンツの分離。2016.4.12 @WP-D Week Day 2 30
構造と見た目の分離2016.4.12 @WP-D Week Day 2 31
.submit-btn {display: inline-block;padding: 10px;color: #FFF;background: #66C;}.link-btn {display: inline-block;padding: 10px;color: #333;background: #C90;}2016.4.12 @WP-D Week Day 2 32
こうしよう2016.4.12 @WP-D Week Day 2 33
/*ボタンの構造*/.btn {display: inline-block;padding: 10px;}/*ボタンの見た目*/.btn-submit {color: #FFF;background: #66C;}.btn-link {color: #333;background: #C90;}2016.4.12 @WP-D Week Day 2 34
構造と見た目の分離するメリット1.コードの重複が避けられる。保守性が上がる。2.拡張がとても用意になる。例• Bootstrap の Button2016.4.12 @WP-D Week Day 2 35
コンテナとコンテンツの分離<aside class="sidebar"><div><img class="avatar" /></div></aside>.sidebar .avatar {width: 200px;border: 5px solid #FFF;box-shadow: 0 2px 3px #000;}2016.4.12 @WP-D Week Day 2 36
こうしよう2016.4.12 @WP-D Week Day 2 37
<aside class="sidebar"><div class="sidebar-widget"><img class="avatar" /></div></aside>.sidebar-widget { /** コンテナ **/width: 200px;}.avatar { /** コンテンツ **/width: 100%;border: 5px solid #FFF;box-shadow: 0 2px 3px #000;}2016.4.12 @WP-D Week Day 2 38
コンテナとコンテンツの分離のメリット1. 場所、コンテキストに依存しないコードが増える。2. 再利用しやすい!3. サイドバーのウィジェットに、.widget { width: 200px }みたいな CSS とかやりがちですけど、フッターでも使いたい...けど横幅していが邪魔…なんてのは良くある話。2016.4.12 @WP-D Week Day 2 39
OOCSSの例• Bootstrap• Foundation2016.4.12 @WP-D Week Day 2 40
OOCSSはすべての基礎なので、これは本当にしっかり押さえよう。2016.4.12 @WP-D Week Day 2 41
詳しくは緑本を読もう2016.4.12 @WP-D Week Day 2 42
2.仕事のやり方等2016.4.12 @WP-D Week Day 2 43
ページ、デザインカンプごとに CSS を作らない。コンポーネント指向な CSS を。• これをやるとだいたい、新規ページ追加のたびに CSS を追記する事態が起こる。• .page-privacy みたいなクラスをbodyを書かないとだめなCSSとか、他のページで使いたいとき、どうするの?• 汎用性のあるパーツを組み合わせて、HTML を組んでいけるものを目指すべし。2016.4.12 @WP-D Week Day 2 44
CSSは整理する。1. リセット・normalize2. ベースのHTML要素へのCSS3. レイアウト、パーツなどのコンポーネントへのCSSという順に詳細度の低い順で書いていく。2016.4.12 @WP-D Week Day 2 45
HTML、コンテンツに依存しない。• HTML・コンテンツが変わっても変わらないようにCSSは設計する。• クラス名等も、コンテンツに依存するものではなく、機能に対して命名する。ニュースエントリーに対して、.news-entryと命名して、その後それを店舗紹介でも使うことになったり。。。(実話)2016.4.12 @WP-D Week Day 2 46
一つのコンポーネントでいろいろやり過ぎない。• サイドバーのウィジェットに、.widget { width: 200px }みたいな CSS とかやりがちですけど、フッターでも使いたい...けど横幅していが邪魔…なんてのは良くある話。• 要素と、レイアウトのための CSS はしっかり分割。絶対値でサイズや場所を指定しているものは要注意。• コンテナーとコンテンツの分離はしっかり。2016.4.12 @WP-D Week Day 2 47
セレクターの強さは可能な限り弱く。• ID セレクタは使わない!セレクターが無駄に強くなって !important 地獄を引き起こす。また、IDセレクタには、ページ内リンクなどの役割もあるのでコンテンツに依存しがち。• .entry-body h1 みたいなこともやりがちですが、こういったCSSがあったりすると、h1にクラスを当てて...みたいなときに CSS が適用されない等のトラブルが。。。2016.4.12 @WP-D Week Day 2 48
親要素に依存したセレクターは使わない。• .comment .title, .entry .title 等のセレクターは一見良さそうだけど、.title に CSS があたらないなんて保証はないし、.entryの中に .comment が存在した場合とか。。。.comment-title, .entry-title 等、親要素に依存しない命名は大事。• SMACSSとか、BEM等を導入すると楽かも。2016.4.12 @WP-D Week Day 2 49
機能、コンポーネントごとにファイル分割する• 一枚の CSS ファイルにゴリゴリ書いていくと、どうしても一つの機能を実現するための CSSが分散したりしがち。なので、機能ごとに CSS ファイルを分割すべし。• 一つのコンポーネントでいろいろやり過ぎてないか?分割すべきか?等の指針にもなる。• 使わないCSSを発見しやすい。2016.4.12 @WP-D Week Day 2 50
本文などの要素からCSSを書いていく。• リセットのあとに書く、HTML要素への CSS はそのサイトの基本のデザイン。これをまずはしっかり実装する。本文欄用に、.main-contents h2 等の CSS を書くのは確実に CSS を複雑にする。2016.4.12 @WP-D Week Day 2 51
みんな緑の本読んで、SMACSSとかFLOCSSとかやればいいよ!!!2016.4.12 @WP-D Week Day 2 52
3. 心構え編2016.4.12 @WP-D Week Day 2 53
強い心を持とう。• CSSは超ゆるふわ言語。簡単に壊れる。一度設計が破綻すると、その CSS の設計が信用できなくなる。• クソコードへの憎しみ、技術者としてのプライドは超重要。• 割れた窓の法則、ボーイスカウトの規則2016.4.12 @WP-D Week Day 2 54
安易なコピペコードは麻薬。• CSS が無駄に長くなって、腐海化する一番の元凶。• 既存のコンポーネントの拡張で出来ないものかを考えよう。• コピペしたくなったときは、設計を見直すチャンス。2016.4.12 @WP-D Week Day 2 55
Refactoring!Refactoring!Refactoring!• CSS を書くときは、デザインがブラウザで再現できた!で終わりにしない。絶対リファクタリングする!• 既存のコンポーネントの拡張で出来ること、一つのコンポーネントの役割が大きすぎるケースは多分に存在する。• CSS は放っておくとすぐに複雑怪奇になってしまうので、常にシンプルな構造になるようにリファクタリングしながら開発していくこと。2016.4.12 @WP-D Week Day 2 56
ドキュメント大事。• せめて、ファイル分割のルール、命名規約などはドキュメントにする。半年前の設計なんて確実に忘れる。• オレオレ設計とかどうせ忘れるし変わるので、SMACSSとかFLOCSSとかちゃんとドキュメントのあるものを使うといろいろ楽。2016.4.12 @WP-D Week Day 2 57
リファクタリングもドキュメントも毎回やれない場合こそ、ちゃんとしたものをつくって、使い回そう。ついでにGithubとかに置いておいてOSSとかにしておくといろいろ幸せになれるかも。2016.4.12 @WP-D Week Day 2 58
まとめ2016.4.12 @WP-D Week Day 2 59
CSS が生まれて20年ちょっと、テーブルレイアウトからの転換が起こって10年くらい。まだまだ、これから変わっていくんだと思います。やはり、プログラミングにおける設計のノウハウはかなり入ってきているので、勉強してみると、いろいろ役立つ知識・考えた方が手に入ります。プログラミングが解らなくても使えることは多いです。プログラミング原則一覧 - Strategic Choiceオブジェクト指向設計原則 - Strategic Choice2016.4.12 @WP-D Week Day 2 60
ゆるふわ言語な CSS へ怒りや悲しみを覚えることはこれからも多いと思いますが、WEBデザインへの愛、エンジニアとしてのプライドを持って乗り越えていきましょう。2016.4.12 @WP-D Week Day 2 61
おわり。Follow Me!Github: @torounitTwitter: @Toro_UnitFacebook: fb.me/torounitWEB Site: https://torounit.com2016.4.12 @WP-D Week Day 2 62

Recommended

PDF
CSS組版について
PDF
Vivliostyle.js における CSS Paged Media の実装
PDF
フロンエンドトレンドについて話そう
PDF
Webと出版と、CSSの未来の話
KEY
HTML5での制作、いつから始める?
PPTX
W3C日本会議発表資料
PPTX
月刊ライトニングトーク 12月号
PDF
html5j 電子出版部セッション「Webと本の未来どうなる?」
PDF
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
PDF
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
PDF
学術出版のHTML5標準化とCSS組版――Scholarly HTMLとVivliostyle
PDF
Web Packaging - Use cases and Loading
PDF
WordPressカスタム三兄弟、concrete5ならこう作る。
PDF
「日本語組版処理の要件(JLREQ)」とは何か
PDF
日本語フォーラムで回答してみよう!~誰でも出来るWordPressへの貢献〜
PDF
Php conference 2010 final
PDF
WordPressユーザーのためのMovableTypeの基礎知識
PPTX
2016年版 フロントエンド開発フォーマット
PDF
使いやすいWordPressのためのCSSのつくりかた
PDF
WordPressで行う継続的インテグレーション入門編
PPTX
かんたん!わかりやすいWafのおはなし
PDF
フーリエ変換と画像圧縮の仕組み
PDF
自分のWordPressのブログをリニューアルした話
PDF
カスタムフィールドの光と闇。 または、愛について。
PDF
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano
PDF
なんでCSSすぐ死んでしまうん
PDF
アイデアを形にする ②HTML/CSSから始めるWeb技術の基礎
PDF
Css benkyou
PDF
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
PPT
CSS勉強会

More Related Content

PDF
CSS組版について
PDF
Vivliostyle.js における CSS Paged Media の実装
PDF
フロンエンドトレンドについて話そう
PDF
Webと出版と、CSSの未来の話
KEY
HTML5での制作、いつから始める?
PPTX
W3C日本会議発表資料
PPTX
月刊ライトニングトーク 12月号
PDF
html5j 電子出版部セッション「Webと本の未来どうなる?」
CSS組版について
Vivliostyle.js における CSS Paged Media の実装
フロンエンドトレンドについて話そう
Webと出版と、CSSの未来の話
HTML5での制作、いつから始める?
W3C日本会議発表資料
月刊ライトニングトーク 12月号
html5j 電子出版部セッション「Webと本の未来どうなる?」

What's hot

PDF
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
PDF
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
PDF
学術出版のHTML5標準化とCSS組版――Scholarly HTMLとVivliostyle
PDF
Web Packaging - Use cases and Loading
PDF
WordPressカスタム三兄弟、concrete5ならこう作る。
PDF
「日本語組版処理の要件(JLREQ)」とは何か
PDF
日本語フォーラムで回答してみよう!~誰でも出来るWordPressへの貢献〜
PDF
Php conference 2010 final
PDF
WordPressユーザーのためのMovableTypeの基礎知識
PPTX
2016年版 フロントエンド開発フォーマット
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
学術出版のHTML5標準化とCSS組版――Scholarly HTMLとVivliostyle
Web Packaging - Use cases and Loading
WordPressカスタム三兄弟、concrete5ならこう作る。
「日本語組版処理の要件(JLREQ)」とは何か
日本語フォーラムで回答してみよう!~誰でも出来るWordPressへの貢献〜
Php conference 2010 final
WordPressユーザーのためのMovableTypeの基礎知識
2016年版 フロントエンド開発フォーマット

Viewers also liked

PDF
使いやすいWordPressのためのCSSのつくりかた
PDF
WordPressで行う継続的インテグレーション入門編
PPTX
かんたん!わかりやすいWafのおはなし
PDF
フーリエ変換と画像圧縮の仕組み
PDF
自分のWordPressのブログをリニューアルした話
PDF
カスタムフィールドの光と闇。 または、愛について。
PDF
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano
使いやすいWordPressのためのCSSのつくりかた
WordPressで行う継続的インテグレーション入門編
かんたん!わかりやすいWafのおはなし
フーリエ変換と画像圧縮の仕組み
自分のWordPressのブログをリニューアルした話
カスタムフィールドの光と闇。 または、愛について。
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano

Similar to まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。

PDF
なんでCSSすぐ死んでしまうん
PDF
アイデアを形にする ②HTML/CSSから始めるWeb技術の基礎
PDF
Css benkyou
PDF
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
PPT
CSS勉強会
PDF
今必要なCSSアーキテクチャ
PDF
Css Architecture for the future 未来を見据えるCSS設計
PDF
CSS Design and Programming
PDF
Html5でword pressテーマを作るよ!
PDF
141115 making web site
PPTX
Css3
PDF
エンジニアとデザイナーとの距離
PDF
壊れやすいCSS
PDF
2017: A CSS Design Odyssey
PDF
CSS は、もっと楽になる – LESS を活用してコーディング作業をシンプルに
PDF
CSSの光と闇
PDF
Web制作勉強会 #1
PDF
マークアップ講座 02 CSS
PDF
Webデザインの骨組み「ワイヤーフレーム」を学ぼう【完成編】 先生:田中 晶子
PPTX
バレンタイン直前開催Web勉強会
なんでCSSすぐ死んでしまうん
アイデアを形にする ②HTML/CSSから始めるWeb技術の基礎
Css benkyou
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
CSS勉強会
今必要なCSSアーキテクチャ
Css Architecture for the future 未来を見据えるCSS設計
CSS Design and Programming
Html5でword pressテーマを作るよ!
141115 making web site
Css3
エンジニアとデザイナーとの距離
壊れやすいCSS
2017: A CSS Design Odyssey
CSS は、もっと楽になる – LESS を活用してコーディング作業をシンプルに
CSSの光と闇
Web制作勉強会 #1
マークアップ講座 02 CSS
Webデザインの骨組み「ワイヤーフレーム」を学ぼう【完成編】 先生:田中 晶子
バレンタイン直前開催Web勉強会

まだ間に合う「CSS設計」ことはじめ。CSSの闇に飲み込まれないための考え方。


[8]ページ先頭

©2009-2025 Movatter.jp