62
UAスタイルシートと リセットCSS

UAスタイルシートと リセットCSS

  • Upload
    -

  • View
    6.775

  • Download
    2

Embed Size (px)

Citation preview

Page 1: UAスタイルシートと リセットCSS

UAスタイルシートと リセットCSS

Page 2: UAスタイルシートと リセットCSS

Tomoki Kubo株式会社まぼろし

マークアップエンジニア

ブログ: KOJIKA17

Adobe Creative Stationにて、Emmetの連載中

Page 3: UAスタイルシートと リセットCSS

もくじ

• UAスタイルシート- UAスタイルシートの基本 - モダンブラウザのUAスタイルシート

• リセットCSS

- 全称セレクタ- Reset CSS- Normalize.css- リセットCSS と Normalize.css

• まとめ

Page 4: UAスタイルシートと リセットCSS

UAスタイルシート

Page 5: UAスタイルシートと リセットCSS

Webサイトの表示に関わるスタイルシート

1. User Agent Style Sheets

2. Cascading Style Sheets

(User Style Sheets)

Page 6: UAスタイルシートと リセットCSS
Page 7: UAスタイルシートと リセットCSS
Page 8: UAスタイルシートと リセットCSS

HTMLの見た目は、 UAスタイルシートが 決めているにすぎない

Page 9: UAスタイルシートと リセットCSS

HTML = 意味付け スタイルシート = 見た目

Page 10: UAスタイルシートと リセットCSS

HTMLとスタイルシートは 分離して考えましょう

Page 11: UAスタイルシートと リセットCSS

head, title, meta, style, script要素も

意味付け

Page 12: UAスタイルシートと リセットCSS

HTML(body要素は空)

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style contenteditable="true"> * { display: block; } title { margin: 1em; color: #f00; } style { white-space: pre; } </style> </head> <body></body> </html>

Page 13: UAスタイルシートと リセットCSS

ブラウザの表示

Page 14: UAスタイルシートと リセットCSS

UAスタイルシートの見本Default style sheet for HTML 4http://www.w3.org/TR/CSS2/sample.html

Page 15: UAスタイルシートと リセットCSS
Page 16: UAスタイルシートと リセットCSS

基本的に 上下のmargin指定が

ついている

Page 17: UAスタイルシートと リセットCSS
Page 18: UAスタイルシートと リセットCSS

モダンブラウザの UAスタイルシート

Page 19: UAスタイルシートと リセットCSS

HTML5の新要素の UAスタイルシートは?

Page 20: UAスタイルシートと リセットCSS

2009年頃

• Internet Explorer 8, Firefox 2HTML5の新要素のDOMをうまく作れなかった

• Firefox 3.x, Safari, Google Chrome UAスタイルシートに新要素の記述がまだない

Page 21: UAスタイルシートと リセットCSS

現在もちろん、ばらつきがある

Page 22: UAスタイルシートと リセットCSS
Page 23: UAスタイルシートと リセットCSS

html5jグループにて 「IE11 でmain 要素のwidth,height 指定が 無視されるのはなぜでしょうか?」

Page 24: UAスタイルシートと リセットCSS

display: block;以外も 追加されている要素がある

Page 25: UAスタイルシートと リセットCSS
Page 26: UAスタイルシートと リセットCSS

margin-before?after?

Page 27: UAスタイルシートと リセットCSS
Page 28: UAスタイルシートと リセットCSS

論理方向プロパティ

• margin-start / margin-end

• margin-before / margin-after

• padding-start /padding-end

• padding-before /padding-after

Page 29: UAスタイルシートと リセットCSS

論理方向プロパティ

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

before

after

start end

writing-mode: lr-tb;

Page 30: UAスタイルシートと リセットCSS

beforeafter

start

end

論理方向プロパティwriting-mode: tb-rl;

Page 31: UAスタイルシートと リセットCSS

モダンブラウザ h1要素の見た目

Page 32: UAスタイルシートと リセットCSS

HTML

<h1>Lv 1</h1>

<section> <h1>Lv 2</h1>

<section> <h1>Lv 3</h1> </section>

</section>

Page 33: UAスタイルシートと リセットCSS

ブラウザの表示

Page 34: UAスタイルシートと リセットCSS

h1要素の見た目は セクショニング・コンテンツの

深度によって変わる

Page 35: UAスタイルシートと リセットCSS

Firefoxresource://gre-resources/html.css

Page 36: UAスタイルシートと リセットCSS
Page 37: UAスタイルシートと リセットCSS

WebKit html.csshttp://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css

Page 38: UAスタイルシートと リセットCSS
Page 39: UAスタイルシートと リセットCSS

アウトライン・アルゴリズムは 視覚的にわかりやすくなっているだけ

HTMLとスタイルシートを混同しない

Page 40: UAスタイルシートと リセットCSS

リセットCSS各ブラウザの差異を埋める手法

Page 41: UAスタイルシートと リセットCSS

リセットCSSの目的

ブラウザ間の表示を統一させる

Page 42: UAスタイルシートと リセットCSS

全称セレクタ

* { margin: 0; padding: 0; border: none; font-size: 100%; }

すべての要素の値をまとめて指定できる 意図しない要素までリセットする可能性がある

Page 43: UAスタイルシートと リセットCSS

Reset CSS

• Eric Meyer’s "Reset CSS" 2.0

• Yahoo! (YUI 3) Reset CSS

• HTML5 Doctor CSS Reset

Page 44: UAスタイルシートと リセットCSS
Page 45: UAスタイルシートと リセットCSS

Normalize.css

• UAスタイルシートを生かすことを目的としたCSS

• ブラウザのスタイルシートの差異を修正

• コード内のコメントに、詳細な説明が入っている

Page 46: UAスタイルシートと リセットCSS
Page 47: UAスタイルシートと リセットCSS
Page 48: UAスタイルシートと リセットCSS
Page 49: UAスタイルシートと リセットCSS

Firefox 40が2015年8月11日にリリース• <abbr>、<acronym> 要素に text-decoration プロパティが使われるようになった

• 具体的に、border-block-end: dotted 1px が text-decoration: dotted underline に置き換えられた

• Google Chrome は border-bottom を使用している

• Normalize.css が、修正対象になっている

Page 50: UAスタイルシートと リセットCSS

Rest CSSや Normalize.cssも

たまには見直しが必要

Page 51: UAスタイルシートと リセットCSS

Rest CSSと Normalize.cssの折衷

sanitize.cssやReboot

Page 52: UAスタイルシートと リセットCSS

Rest CSS と Normalize.css

Page 53: UAスタイルシートと リセットCSS

好きな方を使えば、 いいと思う

Page 54: UAスタイルシートと リセットCSS

もし使い分けるなら

Page 55: UAスタイルシートと リセットCSS

Nicolas Gallagher – Blog & Ephemera

http://nicolasgallagher.com

Page 56: UAスタイルシートと リセットCSS
Page 57: UAスタイルシートと リセットCSS

UAスタイルシートを生かしたまま、 要素をひとつのモジュールとして

機能させられるサイト

Page 58: UAスタイルシートと リセットCSS

楽天市場http://www.rakuten.co.jp

Page 59: UAスタイルシートと リセットCSS
Page 60: UAスタイルシートと リセットCSS

プロパティを初期化した方が 構築しやすいなら

Rest CSS

Page 61: UAスタイルシートと リセットCSS

まとめ

• UAスタイルシートは、HTMLの変化が出やすい

• Rest CSSやNormalize.cssを重複して読んでいなければ、なんでもいいと思う

Page 62: UAスタイルシートと リセットCSS

ありがとうございました。