Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
UAスタイルシートと
リセットCSS
Tomoki Kubo
株式会社まぼろし

マークアップエンジニア

ブログ: KOJIKA17

Adobe Creative Stationにて、Emmetの連載中
もくじ
• UAスタイルシート

- UAスタイルシートの基本

- モダンブラウザのUAスタイルシート
• リセットCSS

- 全称セレクタ

- Reset CSS

- Normalize.css

- リセットCSS と Normalize.css
• まとめ
UAスタイルシート
Webサイトの表示に関わるスタイルシート
1. User Agent Style Sheets
2. Cascading Style Sheets
(User Style Sheets)
UAスタイルシートと リセットCSS
UAスタイルシートと リセットCSS
HTMLの見た目は、
UAスタイルシートが
決めているにすぎない
HTML = 意味付け
スタイルシート = 見た目
HTMLとスタイルシートは
分離して考えましょう
head, title, meta,
style, script要素も
意味付け
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>
ブラウザの表示
UAスタイルシートの見本
Default style sheet for HTML 4

http://www.w3.org/TR/CSS2/sample.html
UAスタイルシートと リセットCSS
基本的に
上下のmargin指定が
ついている
UAスタイルシートと リセットCSS
モダンブラウザの
UAスタイルシート
HTML5の新要素の
UAスタイルシートは?
2009年頃
• Internet Explorer 8, Firefox 2

HTML5の新要素のDOMをうまく作れなかった
• Firefox 3.x, Safari, Google Chrome

UAスタイルシートに新要素の記述がまだない
現在
もちろん、ばらつきがある
UAスタイルシートと リセットCSS
html5jグループにて
「IE11 でmain 要素のwidth,height 指定が
無視されるのはなぜでしょうか?」
display: block;以外も
追加されている要素がある
UAスタイルシートと リセットCSS
margin-before?after?
UAスタイルシートと リセットCSS
論理方向プロパティ
• margin-start / margin-end
• margin-before / margin-after
• padding-start /padding-end
• padding-before /padding-after
論理方向プロパティ
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;
beforeafter
start
end
論理方向プロパティ
writing-mode: tb-rl;
モダンブラウザ
h1要素の見た目
HTML
<h1>Lv 1</h1>
<section>
<h1>Lv 2</h1>
<section>
<h1>Lv 3</h1>
</section>
</section>
ブラウザの表示
h1要素の見た目は
セクショニング・コンテンツの
深度によって変わる
Firefox
resource://gre-resources/html.css
UAスタイルシートと リセットCSS
WebKit html.css
http://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css
UAスタイルシートと リセットCSS
アウトライン・アルゴリズムは
視覚的にわかりやすくなっているだけ

HTMLとスタイルシートを混同しない
リセットCSS
各ブラウザの差異を埋める手法
リセットCSSの目的
ブラウザ間の表示を統一させる
全称セレクタ
* {
margin: 0;
padding: 0;
border: none;
font-size: 100%;
}
すべての要素の値をまとめて指定できる
意図しない要素までリセットする可能性がある
Reset CSS
• Eric Meyer’s "Reset CSS" 2.0
• Yahoo! (YUI 3) Reset CSS
• HTML5 Doctor CSS Reset
UAスタイルシートと リセットCSS
Normalize.css
• UAスタイルシートを生かすことを目的とした
CSS
• ブラウザのスタイルシートの差異を修正
• コード内のコメントに、詳細な説明が入って
いる
UAスタイルシートと リセットCSS
UAスタイルシートと リセットCSS
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 が、修正対象になっている
Rest CSSや
Normalize.cssも
たまには見直しが必要
Rest CSSと
Normalize.cssの折衷
sanitize.cssやReboot
Rest CSS と Normalize.css
好きな方を使えば、
いいと思う
もし使い分けるなら
Nicolas Gallagher –
Blog & Ephemera
http://nicolasgallagher.com
UAスタイルシートと リセットCSS
UAスタイルシートを生かしたまま、
要素をひとつのモジュールとして
機能させられるサイト
楽天市場
http://www.rakuten.co.jp
UAスタイルシートと リセットCSS
プロパティを初期化した方が
構築しやすいなら
Rest CSS
まとめ
• UAスタイルシートは、HTMLの変化が出やすい
• Rest CSSやNormalize.cssを重複して

読んでいなければ、なんでもいいと思う
ありがとうございました。

More Related Content

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