• 検索結果がありません。

about かみのごうや たいち 大阪府出身 東京都在中 28歳 うお座 O型 ゾウと写真が好き 2xup.org を管理

N/A
N/A
Protected

Academic year: 2021

シェア "about かみのごうや たいち 大阪府出身 東京都在中 28歳 うお座 O型 ゾウと写真が好き 2xup.org を管理"

Copied!
128
0
0

読み込み中.... (全文を見る)

全文

(1)

ちゃんと

CSSするための

スタイルガイド講座

Taichi Kaminogoya

(2)

about

かみのごうや たいち

大阪府出身 東京都在中

28歳 うお座 O型

ゾウと写真が好き

2xup.org を管理

(3)
(4)
(5)

photo by timlovesbrian.

http://www.flickr.com/photos/cmsspork/417022096/ http://creativecommons.org/licenses/by/3.0/

(6)

継承

DOM ツリー構造に沿って

一定のルールで値を子要素に渡す

子要素に特に指定の無い場合は継承された値に

なんでもかんでも継承しません

継承しないプロパティの値は初期値に

(7)

DOM

html head body div.section title h1 div.section h2 div.section h3 p strong a div.section h3 p

(8)

<p>やっぱり<span>ゾウ</span>が好き</p>

継承

やっぱりゾウが好き

p
{

color:
yellow;

}

やっぱりゾウが好き

(9)

<p>やっぱり<span>ゾウ</span>が好き</p>

継承

やっぱりゾウが好き

p
{

color:
yellow;

}

p
span
{

color:
green;

}

やっぱりゾウが好き

やっぱり

ゾウ

が好き

(10)

継承

一定のルールで値を子要素に渡す

子要素に特に指定の無い場合は継承された値に

なんでもかんでも継承しません

(11)
(12)
(13)

カスケード

スタイルの競合を順位付けで解決

3つのポイントで順位付け 1 重要度(複数のスタイルシート) 2 特定度(セレクタ) 3 順序(参照・記述)

CSS の分割管理のキモ

(14)

重要度

制作者スタイルシート(Web制作者) ユーザースタイルシート(ユーザー) デフォルトスタイルシート(ウェブブラウザ) 高 低

(15)

重要度(

! important)

ユーザースタイルシート(! imporatnt) 制作者スタイルシート(! important) 制作者スタイルシート(Web制作者) ユーザースタイルシート(ユーザー) デフォルトスタイルシート(ウェブブラウザ) 高 低

(16)

特定度

かみのごうや たいち

大阪府出身 東京都在中

28歳 うお座 O型

ゾウと写真が好き

2xup.org を管理 特定度が高い photo by taro-san

(17)

ゾウラヴ

<p
class=”hoge”
id=”fuga”>ゾウラブ</p>

特定度

p
{ color:
orange; }

ゾウラヴ

(18)

ゾウラヴ

<p
class=”hoge”
id=”fuga”>ゾウラブ</p>

特定度

p
{ color:
orange; } p#fuga
{ color:
green; }

ゾウラヴ

ゾウラヴ

(19)

ゾウラヴ

<p
class=”hoge”
id=”fuga”>ゾウラブ</p>

特定度

p
{ color:
orange; } p#fuga
{ color:
green; } p.hoge
{ color:
red; } p[id=hoge]
{ color:
blue; }

ゾウラヴ

ゾウラヴ

(20)

ゾウラヴ

<p
class=”hoge”
id=”fuga”>ゾウラブ</p>

特定度

p
{ color:
orange; } p#fuga
{ color:
green; } p.hoge
{ color:
red; } p[id=hoge]
{ color:
blue; }

ゾウラヴ

ゾウラヴ

特定度が高い 無効

}

(21)

特定度

得点 0 1 10 100 1 10 10 合計点 セレクタ 全称 要素 class id 疑似要素 疑似クラス 属性 * ○ 0 p ○ 1 .fuga ○ 10 #hoge ○ 100 :after ○ 1 :hover ○ 10 [id=hoge] ○ 10

(22)

ゾウラヴ

<p
class=”hoge”
id=”fuga”>ゾウラブ</p>

特定度

p
{ color:
orange; } p#fuga
{ color:
green; } p.hoge
{ color:
red; } p[id=hoge]
{ color:
blue; } 特定度が高い 1点 101点 11点 11点

(23)

カスケード

スタイルの競合を順位付けで解決

3つのポイントで順位付け 1 重要度(複数のスタイルシート) 2 特定度(セレクタ) 3 順序(参照・記述)

CSS の分割管理のキモ

(24)
(25)

photo by Elsie esq.

http://flickr.com/photos/elsie/5136801/ http://creativecommons.org/licenses/by/3.0/

(26)

ボックスモデル

width, height

margin

padding

border

レンダリング領域

(27)

ボックスモデル

コンテント

width

(28)

  コンテント

ボックスモデル

マージン ボーダー パディング

(29)

ボックスモデル

  マージン辺(外辺) ボーダー辺 パディング辺 コンテント辺(内辺)

(30)

background

  マージン辺(外辺) ボーダー辺 パディング辺 コンテント辺(内辺)

(31)

背景(

background)

background

(32)

背景(

background)

背景(

background)

background(IE)

(33)

ボックスモデル(誤)

width height マージン ボーダー パディング コンテント

(34)
(35)

問題

A の位置にあるボックスを B の位置に移動するには?

A

(36)

<div
id="container"> 
 

<div
id="content"> 

</div> 

<div
id="navigation"> 

</div> </div>

(37)

div#container
{ 

width:
300px; 

height:
300px; 

padding‐top:
100px; 

background‐color:
#ccc; } div#content
{ 

height:
200px; 

background‐color:
#ddd; } div#navigation
{ 

height:
50px; 

width:
100px; 

background‐color:
black; }

(38)

解答:絶対配置

position: absolute; top: 0; right: 0; で配置

包含ブロックの左上を基準に指定された位置に配置される

(39)

包含ブロック

CSS レイアウトのキモ

基本的には配置する要素に最も近い祖先要素

通常フロー, float, position: relative;, position: static;

ルート要素(body, html), position: fixed; の

包含ブロックはブラウザの表示域

position: absolute; の時はこのあと解説

(40)

包含ブロック

position: absolute; の場合

position プロパティの値が static 以外の要素のパディング辺

該当するボックスが無い場合は初期包含ブロック (body)

(41)

パディング辺

  マージン辺(外辺) ボーダー辺 パディング辺 コンテント辺(内辺)

(42)

包含ブロック

CSS レイアウトのキモ

基本的には配置する要素に最も近い祖先要素

通常フロー, float, position: relative;, position: static;

ルート要素(body, html), position: fixed; の

包含ブロックはブラウザの表示域

position: absolute; の時はこのあと解説

(43)

div#container
{ 

width:
300px; 

height:
300px; 

padding‐top:
100px; 

background‐color:
#ccc; } div#content
{ 

height:
200px; 

background‐color:
#ddd; } div#navigation
{ 

height:
50px; 

width:
100px; 

background‐color:
black; } 

position:
relative; 

position:
absolute; 

top:
0; 

right:
0;

(44)

伝えたかった事

包含ブロック

基本・ルールは大事。ずっと大事。

トライ & エラーも大事

一度は仕様書に目を通す(プロ意識)

『うまくいかない = バグ』ではない

ちなみにこれはハックでもない

(45)
(46)

CSS Hack

表示の違いと整えるものではない

うまくいかない部分を整える為に編み出された必殺技ではない

特定のブラウザに対してスタイルを定義・継承させるもの

(47)

Hack する前に

ミスが無いかチェック

Validator 通しましょう

(48)
(49)
(50)
(51)

Hack する前に

ミスが無いかチェック

Validator 通しましょう

(52)

Hack するなら

できるだけ少なく

アップデートされない環境にむけて

Valid な解決策を

非対応セレクタの利用

条件コメント

やっぱり試して納得したものを(公開中)

http://xrl.us/uzad

仕組みを理解するために基本を学ぶ

(53)

次はハックしたくなるポイント の話

(54)

Hack なポイント

IEの DOCTYPE スイッチあたりのバグ

IE の float した方向にマージンを与えると倍(書籍88ページ)

(55)

DOCTYPE スイッチ

ボックスモデルの解釈をスイッチ

標準モード

互換モード

(56)

ボックスモデル(標準モード)

マージン ボーダー パディング コンテント

(57)

ボックスモデル(互換モード)

マージン ボーダー パディング コンテント

(58)

レイアウトのポイント

どうやら padding

HTML に工夫(書籍74ページ)

ボックスモデルをしっかり理解

DOCTYPE スイッチを理解

標準・互換モードが環境によって混在する環境を意識

(59)

考え方を変える

混在する可能性がある

ボーダー辺の内側に余白が欲しい

(60)

ボックスモデル(標準モード)

マージン ボーダー パディング コンテント

(61)

ボックスモデル(互換モード)

マージン ボーダー パディング コンテント

(62)

考え方を変える

ブロックボックス ブロックボックスのマージン

(63)

考え方を変える

<p> <h1> <div>

h1,
p
{
margin:
1em
13px;
}

(64)

レイアウトのポイント

どうやら padding

HTML に工夫(書籍74ページ)

ボックスモデルをしっかり理解

DOCTYPE スイッチを理解

標準・互換モードが環境によって混在する環境を意識

(65)

柔軟な骨組み

現在は構造を示す要素は無い

見出しを div でコンテナ

見出しにあわせて入れ子に

分類する為に class=”section” <div
class=”section”> 

<h1>heading
1</h1> 

<p>description</p> 

<div
class=”section”> 



<h2>heading
2</h2> 



<p>description</p> 

</div> </div>

(66)

div.section

XHTML 2.0 の section, hn 構造を意識したものではない

文書内の構造を示す為に利用

class 名はとりあえず考えなくて良い

必要があれば属性を追加

分類したい場合は class を追加(複数指定可能)

識別したい場合は id を追加

(67)

考え方を変える

カラム落ち

余計なハック

あきらめる <div
class=”section”> 

<h2>heading
2</h2> 

<p>description</p> </div>

(68)

考え方を変える

<p> <h2> <div class=”section”>

h2,
p
{
margin:
1em
13px;
}

(69)

ボックスモデル問題の解決

シンプルな構造

ほとんどのブロック要素に

common.css などで定義しておく

公開するものにも適用しています

必要に応じて上書き

ボックスモデルに関する CSS ハックはこれで軽減できそう

さまざまなレイアウトサンプルは書籍 79 ページから common.css を見せる

(70)
(71)
(72)
(73)

CSS の分割管理

書籍 96 ページ

管理効率の向上

(74)

管理効率の向上

修正箇所へのアクセススピードアップ

(75)

合体ロボットのように

目的別に用意されたスタイルシートファイルを合体

様々な環境向けスタイル基礎づくりの省力化

サンプルサイトの構築スピードアップ

(76)
(77)
(78)
(79)

合体ロボットのように

目的別に用意されたスタイルシートファイルを合体

様々な環境向けスタイル基礎づくりの省力化

サンプルサイトの構築スピードアップ

(80)

デバッグツールとしても

要素の枠を表示

id や class の名前を表示

(81)
(82)

common.css

通称: ぬかみそ

ブラウザのデフォルトスタイルに上書き

基本的に要素タイプセレクタのみ

どこでも使える

色情報は無し

(83)

layout.css

フレームワークにあわせたレイアウトの枠組み

様々なレイアウト用に複数用意する

(84)

theme.css

デザイン情報担当

(85)

component.css

良く利用するスタイル定義をまとめて管理

複数のセレクタに同じ指定を行う場合に便利

clearfix と呼ばれているもの

(86)

clearfix ってなによ?

float するオブジェクトの包含ブロックが縮むのを解決

該当する包含ブロックの後に要素が無い時に

包含ブロックの後に疑似要素を設けてそれで解決

<div class=”clear”></div> とか <br clear=”both” /> の代わり

(87)

div.content
{ 

width:
100px; 

float:
left; } div.menu
{ 

width:
100px; 

float:
right; } div.footer
{ 

clear:
both; } div.content div.menu div.section div.footer

float するオブジェクトの包含ブロックは縮む

解決

その1(後に要素がある)

(88)

float するオブジェクトの包含ブロックは縮む

解決

その2(後に要素がない)

div.content div.menu div.section div.section
{ } div.content
{ 

width:
100px; 

float:
left; } div.menu
{ 

width:
100px; 

float:
right; } 

overflow:
auto; IEは効果無し

(89)

div.section
{ 
... } div.content
{ 

... } div.section:after
{ 

content:
'.'; 

visibility:
hidden; 

clear:
both; 

display:
block; 

height:
0; } div.content div.menu div.section div.section:after IEは非対応

float するオブジェクトの包含ブロックは縮む

解決

その3(後に要素がない)

(90)

div.section
{ } div.content
{ 

... } div.section:after
{ 

content:
'.'; 

visibility:
hidden; 

clear:
both; 

display:
block; 

height:
0; } 

zoom:
1; IE独自実装 div.content div.menu div.section div.section:after

float するオブジェクトの包含ブロックは縮む

解決

その3(後に要素がない・解決案)

IE以外

(91)

clearfix ってなによ?

float するオブジェクトのある

overflow: auto; で解決できない場合に利用する

float で移動したブロックに回り込むのを解除する

clear: left; , clear: right; , clear: both;

<div class=”clear”></div> の代わり

(92)

clearfix ってなによ?

float するオブジェクトの包含ブロックが縮むのを解決

該当する包含ブロックの後に要素が無い時に

包含ブロックの後に疑似要素を設けてそれで解決

<div class=”clear”></div> とか <br clear=”both” /> の代わり

(93)

outline.css

要素の枠を表示する CSS ファイル

ボックスモデルに影響を与えないで要素領域を確認

(94)
(95)

CSS って読みやすい

書籍 102 ページ

CSS を知らない人でも何となく意味がわかる

例えば background-color: black;

(96)

柔軟なフォーマット

だれでも書き方に癖がある

案件によって書き方がちがう

書き方が違うとチョットキモチワルイ

スパゲッティになっちゃう

ルールが必要やね

(97)

ルールがあれば

作業効率が上がる

書き整える必要なし

修正箇所へのアクセス

(98)

ピンとこないかもしれないので

例を用意してみました

(99)
(100)

あんたー

部屋散らかってたから

片付けといたでー

(101)

えええっ

なんでそんなことすんねん!

アレはアレで

(102)

そんなもんしらんわ!

マンガは片付けてないし

足の踏み場もなかったわ!

(103)

オキャン

…。最バク…。

(104)

うぉお。

めっさ片付いてる

…。

まあキレーになったから

ええか。

(105)

さて。

昨日途中まで読んだ

(106)
(107)
(108)

ボクの

キテレツ大百科

2 巻

どこいったんやー!

専用の箱に

(109)

オキャン!

ボクの

キテレツ大百科

2 巻

(110)

あ、それやったら

本棚の『マンガ日本の歴史』の

裏に並べたわ

(111)
(112)

せやかて

どこに直すか知らんねんもん

あたし。なんしか。

(113)

お。あったわ

…。

しかしショック!

個人的にキテレツの横は

『魔太郎がくる』やのに

(114)

オカンは迷わず片付けできる

整理しなおす必要がなくなる

どこにあるか探す時間が減る

ちうかそもそも散らからない

作業効率が上がる

書き整える必要なし

修正箇所へのアクセス

ちうかそもそもミスが減る

ルールがあれば

(115)
(116)

セットフォーマットルール

複数のセレクタ指定の際はカンマのあと改行する

セレクタの後は一文字分の半角スペースのあと『 { 』

プロパティのは各々一行にまとめる

行頭には2も自分の半角スペースでインデント

プロパティの後はスペース無しに『 : 』

『 : 』と値の間には一文字分の半角スペース

値の最後は『 ; 』で終了

『 } 』はインデントしない

セットごとに空白行を設ける

(117)

セットフォーマットルール

selector,


selector
{



property:
value;

}

selector
{



property:
value;

}

(118)

セレクタに関するルール

どこの誰かわかりやすく

(119)

プロパティに関するルール

仕様上の分類を基準に並べる

書く分類ごとのプロパティは仕様書通り

編集する可能性の高いものほど後に

簡略化プロパティは省略値がリセットされるので 使うプロパティをきめておく

(120)

値に関するルール

0 には単位をつけない

line-height にも単位をつけない(書籍117ページ)

外部ファイルの参照方法

パスの指定法

URI を引用符で囲まない

(121)

ソースコードは

(122)
(123)

共有しませんか?

みなさんが気をつけている事

個人

チーム

後ろ前の席の人と共有

なにか小さな事ひとつでも決めてみましょう

時間があれば後ほど発表

(124)

最後に

今日決めた事をブログに書いてみませんか?

アウトプット = インプットのチャンス

Wiki を用意しています

今日紹介した CSS ファイル

サイトの URL

みなさんも追加してみてください

(125)
(126)

http://xrl.us/vfsm

elephantism

(127)
(128)

photo by Orin Optiglot.

http://flickr.com/photos/orinrobertjohn/239595034/ http://creativecommons.org/licenses/by/3.0/

参照

関連したドキュメント

After studying some general structural properties of block factorizations with 2 × 2 pivots in Section 2, we will present the algorithm in Section 3 and provide a complete

F rom the point of view of analysis of turbulent kineti energy models the result.. presented in this paper an be onsidered as a natural ontinuation of

Since the majorant minimization problem discretized by RT0 elements is about 3 times larger than the Poisson problem discretized by linear nodal elements, the other error

相談件数約 1,300 件のうち、6 割超が東京都、大阪府、神奈川県をはじめとした 10 都

9 Influence of pumping on chloride content Concrete temperature (Fig. 8) increased after pumping, and chloride content (Fig. 9) was slightly decreased but leveled out

粗大・不燃・資源化施設の整備状況 施設整備状況は、表−4の「多摩地域の粗大・不燃・資源化施設の現状」の

てい おん しょう う こう おん た う たい へい よう がん しき き こう. ほ にゅうるい は ちゅうるい りょうせい るい こんちゅうるい

このガイドラインは、東京都北区(以下「区」という。