SlideShare une entreprise Scribd logo
1  sur  88
Télécharger pour lire hors ligne
コーディング研修
CSSについて
コーディング研修
早川 稔
アジェンダ
• CSSとは
• CSSの記述方法
• セレクタの指定
• CSSの適用方法
• ボックスモデル
• CSS使うことのメリット
• CSSでできること
• レスポンシブWebデザイン
• CSS設計
CSSとは
CSSとは
HTMLやXMLで記述された文書の体裁や見栄えを
表現するために用いられるスタイルシート言語
文書構造と体裁を分離させるという理念
を実現するために提唱された仕様
<div>
<center>
<font size="2">CSS</font>
</center>
<p>
<font color="red">CSS</font>は、HTMLやXMLで記述された
文書の体裁や見栄えを表現するために用いられるスタイルシー
ト言語
</p>
</div>
HTML要素には見栄えを指定するための要素が存在していた
CSSの概念
CSSの概念
HTML HTML HTML
閲覧用 印刷用 他のデバイス用
閲覧用、印刷用、他のデバイス向けのデザインに合わせた
HTMLをそれぞれ用意しなければならない
デザイン部分をHTMLに記述していると..
以前
HTML
文章構造
デザイン
標準
HTML
文章構造
CSS
デザイン+
CSSの概念
「文章構造」と「デザイン」を切り離す考え
CSSの概念
HTML
CSS CSS CSS
閲覧用 印刷用 他のデバイス用
デザイン部分をCSSに任せることでメンテナンス性は
大きく向上する
※:スマホ用、タブレット用のそれぞれのHTMLを用意することが良い場合があるため、この概念が適用できない場合もあります。
• CSS level 1(CSS 1.0) 1996年12月
• CSS level 2(CSS 2.0) 1998年5月
• CSS level 2 revision 1 (CSS 2.1) 2011年6月
• CSS level 3 (CSS 3)
• 全体がモジュール化されたため、統合された仕様は存在せず
• CSS Color Module Level 3 2011年6月
• Selectors Level 3 2011年9月
• Media Queries Level 3 2012年6月
• CSS Level 4 (CSS4)
• Selectors Level 4 草案
• Media Queries Level 4 草案
CSSとは
CSSのバージョン
CSSの記述方法
CSSの記述方法
p {
margin: 0;
}
セレクタ
(selector)
プロパティ
(property)
値
(value)
{ }(中括弧)の部分を宣言ブロック、もしくはブロックという
CSSの記述方法
p {
margin: 0;
padding: 0;
color: red;
}
複数のスタイル指定
セミコロンで
区切って記述
セレクタの指定
セレクタの指定
セレクタとは
スタイルを適用する対象を指定するもの
p {
・・・・
}
この部分
CSSの記述方法
セレクタの種類
Selectors Level 3
http://standards.mitsue.co.jp/resources/w3c/TR/css3-selectors/
CSSの適用方法
CSSの適用方法
1. style属性を用いて、各要素に直接指定する
2. head要素の範囲内に、style要素によって指定する
3. head要素の範囲内で、link要素によって外部ファイ
ルとして読み込む
CSSの適用方法
1. style属性を用いて、各要素に直接指定
CSSの適用方法
<div style="margin: 0;">要素</div>
※:構造と体制が分離されないため推奨されない
2. head要素の範囲内に、style要素によって指定
CSSの適用方法
...
<head>
<style>
div {
margin: 0;
}
</style>
</head>
<body>
...
※:HTML内に書くため、メンテナンスを考慮するとなるべく避けた方がよいが、パフォー
マンス(#1)の点で有効な場合もある。
参考(#1):https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery
CSSの適用方法
3. head要素の範囲内で、link要素によって外部
ファイルとして読み込む
■HTMLファイル
...
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
...
■CSSファイル
div {
margin: 0;
}
※:CSSを外部ファイル化するのが一般的
ボックスモデル
• 内容領域(Content Area )
• マージン領域(Margin Area)
• パディング領域(Padding Area)
• ボーダー領域(Border Area)
ボックスモデルとは
ボックスモデルの概念
ボックスモデルの概念
内容領域
(Content Area)
パディング領域(Padding Area)
ボーダー領域(Border Area)
マージン領域(Margin Area)
すべての要素は、ボックスと呼ばれる四角形の領域を

生成します
ボックスモデルの概念
内容領域(Content Area)
• テキストや画像などが表示される領域
• 幅はwidthプロパティ、高さはheightプロパティを
指定する事で任意の幅と高さにする事ができる
• 背景画像や背景色の指定がある場合、内容領域と

パディング領域に背景が適用される
パディング領域(Padding Area)
• 内容領域とボーダー領域の間にある余白
• パディングの指定は、paddingプロパティで

サイズ指定する
• 背景画像や背景色の指定がある場合、この領域にも
背景が適用される
ボックスモデルの概念
ボーダー領域(border Area)
• パディング領域の外側にある領域
• 「線」のための領域
• 各borderプロパティによって

線の種類(border-style)、サイズ(border-width)、
色(border-color)を指定できる
ボックスモデルの概念
マージン領域(margin Area)
• ボックスの最も外側にある余白部分
• マージンの指定は、marginプロパティで

サイズ指定を行う
• マージン領域には背景が適用されない
ボックスモデルの概念
CSSを使うことのメリット
1.メンテナンスの向上
2.パフォーマンスの向上
3.Retina向けの対応を気にしなくてよい

(スマートフォンサイトの場合)
CSSを使うことのメリット
メンテナンスの向上
パフォーマンスの向上
CSSを使うことのメリット
角丸 透過
グラデーション ドロップシャドウ
CSSを使うことのメリット
よく採用されるデザイン要素
IE6が主流の時代
CSSを使うことのメリット
• 角丸
• ドロップシャドウ
• グラデーション
• 透過
画像を使うしかなかった
}
CSSを使うことのメリット
• 角丸やドロップシャドウのあるブロックを表現するために画像
パーツが必要
• 修正が入ると、画像修正と画像差し替えのタスクが発生する
デザイナー、エンジニアのタスク増
• 画像パーツが増えるとページ容量が増え、

表示速度に影響がでる HTTPリクエストが増加する
• 画像の場合、可変幅に対応することが大変 

幅がスクリーンサイズによって異なるリキッドレイアウトには

不向きな場合がある
CSSを使うことのメリット
• 通信プロトコルの一つ
• インターネット上でWebサーバーとクライアント
が、相互に通信するために使用される仕組み
HTTPリクエスト
CSSを使うことのメリット
HTTPリクエスト数(画像ファイルやCSSファイルな
どのリソースの数)が多いとサイト表示に影響がでる
CSSを使うことのメリット
39リクエスト 表示に1.15秒
405リクエスト
某サイトA
某サイトB
表示に8.66秒
• CSSスプライト
• CSSファイルやJSファイルをまとめる
• CSS、JS、画像を圧縮する
余談
HTTPリクエスト数を抑える手法
モバイル時代のWebパフォーマンス
http://www.slideshare.net/yoshikawa_t/web-38508917
CSSでできること
CSS3の登場
• 角丸
• ドロップシャドウ
• グラデーション
• 透過
CSSでできること
CSSでできるようになった
}
• 角丸やドロップシャドウのあるブロックを表現するために画
像パーツが必要 不要
• 修正が入ると、画像修正と画像差し替えのタスクが発生す
る デザイナー、エンジニアのタスク増 減
• 画像パーツが増えるとページ容量が増え、表示速度に影響が
でる HTTPリクエストが増加する
• 画像の場合、可変幅に対応することが難しい 幅がスク
リーンサイズによって異なるリキッドレイアウトには不向き
CSSを使うことのメリット
HTTPリクエストが減り、サイト表示速度が向上する
CSSを使ってブラウザで描画できる要素はCSSに任せる
CSSのみ修正
減ると 減り
難しくない
対応しやすい
でない
CSSでできること
• 文字サイズ、要素サイズ
の指定
• 文字色、背景色の指定
• 文字のスタイル(太字、
斜体)の指定
• 罫線、点線の描画と色、
サイズ指定
CSSでできること
• 行間、文字間の指定
• フォントの指定
• リストの行頭文字の指定
• 要素の配置
CSS2.1以前から表現できる要素
• 角丸
• ドロップシャドウ
• グラデーション
• 透過
• 枠線(画像)
• マスク
CSSでできること
• テキストシャドウ
• Webフォント
• トランスフォーム
• アニメーション
• 背景画像(複数)
• メディアクエリ
CSS3の登場によりCSSでできるようになった要素
角丸
ドロップシャドウ
テキストシャドウ
グラデーション
CSSでできること
• CSS 2.1以前では画像を使うしかありませんでした
が、CSS3の登場により画像無しで描画ができるよ
うなった
• そのため、修正が入ってもその手間は以前ほど大き
くない
CSSでできること
角丸、ドロップシャドウ、テキストシャドウ、

グラデーション
※:テキストシャドウについてはCSS2の仕様に盛り込まれていましたが、ブラウザ
の実装がバラバラだったため、CSS2.1で削除され、CSS3で再定義されました。
• CSS 2.1以前では、ひとつのセレクタに対して、背
景画像は一つしか指定することができなかった
➡ 重ねて表示するためのHTMLを追加していた
• CSS3よりひとつのセレクタに複数の背景画像を指
定することが可能となった
➡ 重ねて表示するためのHTMLを書かなくよくなっ
た
CSSでできること
背景画像(複数)
ボーダーイメージ
CSSでできること
• CSS 2.1以前では直線、破線、二重線などの罫線の
種類、色やサイズの指定のみ
• デザイン性の高い罫線を使う場合は、背景画像として指定
• 可変するブロックに対応することが難しい場合がある
• CSS3より、背景画像としてではなく、ボーダー領
域のみに画像を指定できるようになった
• 可変するブロックにも対応可
ボーダーに画像を使う(ボーダーイメージ)
CSSでできること
マスク
CSSでできること
CSS Masking
http://www.html5rocks.com/en/tutorials/masking/adobe/
アニメーション
CSSでできること
• 要素に動きを付けるためには、JavaScriptで実装
するしかなかった
• CSS3よりCSSアニメーションがサポートされ、
CSSのみで動きを付けることが可能となった
CSSでできること
アニメーション
http://daneden.github.io/animate.css/
CSSでできること
様々なアニメーションが確認できます
アニメーションの実例
要素に変化を付けれる
トランスフォーム(変形処理)
CSSでできること
• 画像やボックスなどの要素に拡大・縮小、移動、

傾き、回転といった変形処理を指定できる
トランスフォーム(変形処理)
CSSでできること
トランスフォームの例
http://desandro.github.io/3dtransforms/
参考
3D
CSSアニメーションとともに使うとflipの動きもできる
CSSでできること
※:3D Transformsは現時点でAndroid2.3は未対応、IE11でも完全ではありません
メディアごとにスタイルシートを適用
CSSでできること
• CSS2.1以前ではメディアタイプと呼ばれる機能
• PCのスクリーン、印刷、テレビなどの

メディアごとにスタイルシートを指定する機能
メディアタイプ
CSSでできること
<!-- スクリーン向けのCSS -->
<link rel="stylesheet" type="text/css" media="screen" href="style.css">
<!-- 印刷向けのCSS -->
<link rel="stylesheet" type="text/css" media="print" href="print.css">
メディアタイプの例
• CSS3よりメディア依存のサポートが強化され、

メディアクエリという仕様になった
• 画面サイズや解像度などに応じて

適用するスタイルを切り替える機能
• レスポンシブWebデザインを実現する手法の1つ
CSSでできること
メディアクエリ
➡ 現在、Media Queries Level 4で策定中
CSSでできること
メディアクエリの将来
Media Queries Level 4の仕様書(英語)

http://www.w3.org/TR/mediaqueries-4/
将来的には
• JavaScript有効無効環境
• マウスなどのポインターデバイスが有効なデバイス
Webフォント
CSSでできること
• CSSでは文字周りは貧弱
• 閲覧環境にインストールされたフォントのみ
• デザイン性のあるフォントを使う場合、

画像化文字を使うしかなかった
Webの文字周り
CSSでできること
font-family:
"ヒラギノ角ゴ Pro W3",
"Hiragino Kaku Gothic Pro",
"メイリオ",
"Meiryo",
"MS Pゴシック",
"MS PGothic",
sans-serif;
これまでのフォントの指定の例
CSSでできること
• フォントファイルさえあれば、好きなフォントで

テキストデータとして表示が可能
Webフォント
CSSでできること
小田原市
AOI Pro. Inc.
BA(ビジネス・アーキテクツ)
• フォントデーターは著作物なので著作権がある
• ライセンス的に問題ないか確認する必要がある
• 日本語フォントの容量の多さ
• フォントフォーマットの対応度の差異
Webフォントの注意点
CSSでできること
WOFF TrueType OpenType EOT SVG
 iOS5∼ ○ ○ ○ ○
 Android2.2∼ ○ ○
 Android3∼ ○ ○ ○
 Chrome ○ ○ ○ ○
 Firefox ○ ○ ○
 IE9∼ ○ ○ ○ ○
 IE8 ○
CSSでできること
これらのWebフォントの手間を軽減する方法
CSSでできること
CSSでできること
クラウドフォントサービス
FONT+【フォントプラス】
(フォントワークス/モリサワ/イワタ/モトヤなど)

http://webfont.fontplus.jp/
TypeSquare【タイプスクウェア】
(モリサワ)

http://typesquare.com/
Google Web Fonts
(欧文フォントのみ)

http://www.google.com/fonts/
Adobe Edge Web Fonts
(欧文フォントのみ)

http://html.adobe.com/jp/edge/webfonts/
CSSでできること
他のWebフォントの活用事例
CSSでできること
Webアイコンフォント
Font Awesome

http://fortawesome.github.io/Font-Awesome/
IcoMoon

https://icomoon.io/
まとめ
• CSSは「文章構造」と「デザイン」を

分離させるという理念で誕生した
• CSS3の登場でCSSだけで表現できることが増えた
• CSSで表現が難しい場合は画像を使うことで

より表現の幅が広がる
• とはいえ画像の多用はサイト表示に影響をすることを

忘れずに
CSSでできないこと
運用におけるCSS
• CSSは簡単に書ける
CSS設計
CSSのメリット
CSSのデメリット
• コードが肥大化しやすい
• メンテナンス性の低下
• 技術取得は容易
• 表示させるだけだと

なんとかなる
• CSSは簡単に書ける
• このファイル何??
• Nobody knows......一番困るのは後任者
• 同じようなスタイルが増えていく
• もはや管理不能なレベルに陥る
• HTMLの保守にも影響がでる
• 他のページでレイアウト崩れが発生
• 修正しても修正しても.......
• 修正作業よりも確認作業のほうに時間が取られる
CSS設計
メンテナンス性が不足しているCSSの末路
• 設計をしっかりとする
• 単にコードを書くだけではなく

プロジェクトの開始時から

関与していく
• IA、デザイナー、エンジニアの

相互コミュニケーションは必要不可欠
CSS設計
それを回避するためには....
要件定義
設計
実装
検証
デザイン
ここから関わる
ある程度、コードやファイルが増えていくのは

仕方ないこと
多少のメンテナンス性が低下するのも起こりうる
CSS設計
その度合いを減らように保守していくことが大事
そのためには、プロジェクトに関わる人全員が

そのサイトに対する共通ルールと共通認識が必要
とはいえ運用フェーズだと....
スタイルガイド
CSS設計
スタイルガイドとは
• サイト全体に関する決めごとをまとめたもの
• コーディングの仕様
• デザインの決めごと
これを無視すると破綻の道を っていく
詳しくは次回!!
Basic CSS Introduction

Contenu connexe

Similaire à Basic CSS Introduction

Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Yasuhito Yabe
 
Css Architecture for the future 未来を見据えるCSS設計
Css Architecture for the future 未来を見据えるCSS設計Css Architecture for the future 未来を見据えるCSS設計
Css Architecture for the future 未来を見据えるCSS設計Horiguchi Seito
 
メディア工房サマーワークショップ「Webアプリ制作」1日目
メディア工房サマーワークショップ「Webアプリ制作」1日目メディア工房サマーワークショップ「Webアプリ制作」1日目
メディア工房サマーワークショップ「Webアプリ制作」1日目Takashi Endo
 
CSS勉強会(第1回)
CSS勉強会(第1回)CSS勉強会(第1回)
CSS勉強会(第1回)Bao Linh Le
 
CSS3の最新事情
CSS3の最新事情CSS3の最新事情
CSS3の最新事情Makoto Kato
 
シラサギ勉強会1201
シラサギ勉強会1201シラサギ勉強会1201
シラサギ勉強会1201okusakazuya
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design OdysseyKenjiro Kubota
 
更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)
更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)
更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)Keisuke Todoroki
 
WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様株式会社GreenHack
 
LESSについて
LESSについてLESSについて
LESSについてokaSlide80
 
超初心者のためのWordPressのサイトのデザインの微調整方法
超初心者のためのWordPressのサイトのデザインの微調整方法超初心者のためのWordPressのサイトのデザインの微調整方法
超初心者のためのWordPressのサイトのデザインの微調整方法Hidekazu Ishikawa
 
Sketchのライセンスを更新した男の話
Sketchのライセンスを更新した男の話Sketchのライセンスを更新した男の話
Sketchのライセンスを更新した男の話anysense_ss
 
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechCSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechlyca chigyo
 

Similaire à Basic CSS Introduction (20)

Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
CSS3がやってきた
CSS3がやってきたCSS3がやってきた
CSS3がやってきた
 
Css
CssCss
Css
 
Css Architecture for the future 未来を見据えるCSS設計
Css Architecture for the future 未来を見据えるCSS設計Css Architecture for the future 未来を見据えるCSS設計
Css Architecture for the future 未来を見据えるCSS設計
 
メディア工房サマーワークショップ「Webアプリ制作」1日目
メディア工房サマーワークショップ「Webアプリ制作」1日目メディア工房サマーワークショップ「Webアプリ制作」1日目
メディア工房サマーワークショップ「Webアプリ制作」1日目
 
CSS勉強会(第1回)
CSS勉強会(第1回)CSS勉強会(第1回)
CSS勉強会(第1回)
 
about CSS3 vol.2
about CSS3 vol.2about CSS3 vol.2
about CSS3 vol.2
 
CSS3の最新事情
CSS3の最新事情CSS3の最新事情
CSS3の最新事情
 
シラサギ勉強会1201
シラサギ勉強会1201シラサギ勉強会1201
シラサギ勉強会1201
 
SMACSS入門
SMACSS入門SMACSS入門
SMACSS入門
 
Webの勉強会#8
Webの勉強会#8Webの勉強会#8
Webの勉強会#8
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
 
更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)
更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)
更に進化するCSSの表現力と新しいWebツール (アドビセッション @HTML5 Conference 2012)
 
WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様WEB開発はじめの一歩 講師:村井亮介様
WEB開発はじめの一歩 講師:村井亮介様
 
HTML and CSS Class-s0
HTML and CSS Class-s0HTML and CSS Class-s0
HTML and CSS Class-s0
 
LESSについて
LESSについてLESSについて
LESSについて
 
超初心者のためのWordPressのサイトのデザインの微調整方法
超初心者のためのWordPressのサイトのデザインの微調整方法超初心者のためのWordPressのサイトのデザインの微調整方法
超初心者のためのWordPressのサイトのデザインの微調整方法
 
Sketchのライセンスを更新した男の話
Sketchのライセンスを更新した男の話Sketchのライセンスを更新した男の話
Sketchのライセンスを更新した男の話
 
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechCSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
 
Sass 超入門
Sass 超入門Sass 超入門
Sass 超入門
 

Basic CSS Introduction