Web制作者は要チェックです!新バージョンのnormalize.css v4はモダンブラウザ・スマホ・HTML5に完全対応
Post on:2016年4月1日
2016年3月19日に、モダンブラウザ、スマホ、HTML5に完全対応した「normalize.css」の新しいバージョン「normalize.css v4.0.0」がついにリリースされました!
v3から細かい改良が重ねられたv4で定義されている各スタイルが、どのように機能しているか紹介します。
normalize.css
normalize.css -GitHub
Changes to normalize.css
- normalize.cssの特徴
- html, body, :rootなどの全体系の定義
- HTML5の新要素用の定義
- リンク系の定義
- テキスト系の定義
- 埋め込みコンテンツ系の定義
- グルーピングコンテンツ系の定義
- フォーム系の定義
normalize.cssの特徴
normalize.cssとはブラウザごとに異なる要素のスタイルの相違を吸収し、各要素のデフォルトのスタイルを提供する小さなCSSファイルです。HTML5にも対応しており、従来のCSSリセットに代わるものです。
-
- 有用なデフォルトはそのまま
- 多くのリセット用スタイルシートは異なり、有用なデフォルトのスタイルは維持します。
-
- スタイルの正常化
- さまざまな種類のエレメントのスタイルを正常化します。
-
- バグの修正
- 各ブラウザごとの異なるスタイルやバグを修正します。
-
- ユーザビリティの改善
- ほんのわずかな改良でユーザビリティを改善します。
-
- コードの説明
- 各コードには詳細な説明があります。
対応ブラウザは下記の通り、対応バージョンは最新版と一つ前版です。
- Chrome
- Edge
- Firefox
- Firefox ESR
- Internet Explorer 8+
- Opera
- Safari 6+
※IE6+, Safari4+は、normalize.css v1をご利用ください。
html, bodyなどの全体系の定義
各スタイルの説明を翻訳しました。
※原文もそのまま残してあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/*! normalize.css v4.0.0 | MIT License | github.com/necolas/normalize.css */ /** * 1. Change the default font family in all browsers (opinionated). * 2. Prevent adjustments of font size after orientation changes in IE and iOS. * 1. すべてのブラウザ用に、デフォルトのフォントファミリーを変更してください (オプション). * 2. IEとiOS用に、デバイスの向きを変えた後にユーザーの文字サイズ調整を防ぐ。 */ html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } /** * Remove the margin in all browsers (opinionated). * すべてのブラウザ用に、デフォルトのマージンを取り除く。 (オプション). */ body { margin: 0; } |
HTML5の新要素用の定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
/* HTML5 display definitions ========================================================================== */ /** * Add the correct display in IE 9-. * 1. Add the correct display in Edge, IE, and Firefox. * 2. Add the correct display in IE. * IE9+用に、displayプロパティを定義。 * 1. Edge, IE, Firefox用、details要素とsummary要素に「display: block;」を定義。 * 2. IE, Firefox用、main要素に「display: block;」を定義。 */ article, aside, details, /* 1 */ figcaption, figure, footer, header, main, /* 2 */ menu, nav, section, summary { /* 1 */ display: block; } /** * Add the correct display in IE 9-. * IE9+用、displayプロパティを定義。 */ audio, canvas, progress, video { display: inline-block; } /** * Add the correct display in iOS 4-7. * iOS4-7用、displayプロパティを定義。 */ audio:not([controls]) { display: none; height: 0; } /** * Add the correct vertical alignment in Chrome, Firefox, and Opera. * Chrome, Firefox, Opera用、vertical-alignプロパティを定義。 */ progress { vertical-align: baseline; } /** * Add the correct display in IE 10-. * 1. Add the correct display in IE. * IE10+用、displayプロパティを定義。 * 1. IE用、template要素に「display: none;」を定義。 */ template, /* 1 */ [hidden] { display: none; } |
リンク系の定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/* Links ========================================================================== */ /** * Remove the gray background on active links in IE 10. * IE10用、アクティブリンクで背景がグレーになるのを取り除く。 */ a { background-color: transparent; } /** * Remove the outline on focused links when they are also active or hovered * in all browsers (opinionated). * すべてのブラウザ用、リンクのアクティブ・ホバー時にフォーカスした要素のリーダビリティを改善するためにアウトラインを取り除く(オプション)。 */ a:active, a:hover { outline-width: 0; } |
テキスト系の定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
/* Text-level semantics ========================================================================== */ /** * 1. Remove the bottom border in Firefox 39-. * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. * 1. Firefox39+用、下線を取り除く * 2. Chrome, Edge, IE, Opera, Safari用、title属性を使用したabbr要素に点線を定義。 */ abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ } /** * Prevent the duplicate application of `bolder` by the next rule in Safari 6. * Safari6用、次の指定「font-weight: bolder;」の重複適用を防ぐ */ b, strong { font-weight: inherit; } /** * Add the correct font weight in Chrome, Edge, and Safari. * Chrome, Edge, Safari用、strong要素にフォントのウェイトを定義。 */ b, strong { font-weight: bolder; } /** * Add the correct font style in Android 4.3-. * android4.3+用、dfn要素にフォントのスタイルを定義。 */ dfn { font-style: italic; } /** * Correct the font size and margin on `h1` elements within `section` and * `article` contexts in Chrome, Firefox, and Safari. * Chrome, Firefox, Safari用、section要素とarticle要素の文脈にあるh1要素のフォントサイズとマージンを定義。 */ h1 { font-size: 2em; margin: 0.67em 0; } /** * Add the correct background and color in IE 9-. * IE9+用、mark要素に背景とカラーを定義。 */ mark { background-color: #ff0; color: #000; } /** * Add the correct font size in all browsers. * すべてのブラウザ用、small要素にフォントサイズを定義。 */ small { font-size: 80%; } /** * Prevent `sub` and `sup` elements from affecting the line height in * all browsers. * すべてのブラウザ用、sub要素とsup要素が「line-height」に影響を与えるのを妨げる。 */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } |
埋め込みコンテンツ系の定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/* Embedded content ========================================================================== */ /** * Remove the border on images inside links in IE 10-. * IE10+用、リンクの中にあるimg要素のボーダーを取り除く。 */ img { border-style: none; } /** * Hide the overflow in IE. * IE用、svg要素に「overflow: hidden;」を定義。 */ svg:not(:root) { overflow: hidden; } |
グルーピングコンテンツ系の定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/* Grouping content ========================================================================== */ /** * 1. Correct the inheritance and scaling of font size in all browsers. * 2. Correct the odd `em` font sizing in all browsers. * 1. すべてのブラウザ用、フォントサイズの大きさ調整と継承を定義。 * 2. すべてのブラウザ用、フォントサイズの単位は「em」を使用。 */ code, kbd, pre, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ } /** * Add the correct margin in IE 8. * IE8用、figure要素も正しいマージンを定義。 */ figure { margin: 1em 40px; } /** * 1. Add the correct box sizing in Firefox. * 2. Show the overflow in Edge and IE. * 1. Firefox用、hr要素に正しいbox-sizingを定義。 * 2. Edge, IE用、hr要素に「overflow: visible;」を定義。 */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } |
フォーム系の定義
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 |
/* Forms ========================================================================== */ /** * 1. Change font properties to `inherit` in all browsers (opinionated). * 2. Remove the margin in Firefox and Safari. * 1. すべてのブラウザ用、フォームのいくつかの要素に「font: inherit;」を定義(オプション)。 * 2. Firefox, Safari用、マージンを取り除く。 */ button, input, select, textarea { font: inherit; /* 1 */ margin: 0; /* 2 */ } /** * Restore the font weight unset by the previous rule. * 前の指定により、optgroup要素にフォントのウェイトを再定義。 */ optgroup { font-weight: bold; } /** * Show the overflow in IE. * 1. Show the overflow in Edge. * 2. Show the overflow in Edge, Firefox, and IE. * IE用、「overflow: visible;」を定義 * 1. Edge用、input要素を定義。 * 2. Edge, Firefox, IE用、select要素を定義。 */ button, input, /* 1 */ select { /* 2 */ overflow: visible; } /** * Remove the inheritance of text transform in Edge, Firefox, and IE. * 1. Remove the inheritance of text transform in Firefox. * Edge, Firefox, IE用、text-transformの継承を取り除く。 * 1. Firefox用、text-transformの継承を取り除く。 */ button, select { /* 1 */ text-transform: none; } /** * Change the cursor in all browsers (opinionated). * すべてのブラウザ用、button要素のカーソルを変更(オプション)。 */ button, [type="button"], [type="reset"], [type="submit"] { cursor: pointer; } /** * Restore the default cursor to disabled elements unset by the previous rule. * 前の指定により、disabledを指定した要素はデフォルトのカーソルに戻す。 */ [disabled] { cursor: default; } /** * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` * controls in Android 4. * 2. Correct the inability to style clickable types in iOS. * 1. Android4用、ネイティブのaudio要素とvideo要素のコントールのWebkitのバグを避ける。 * 2. iOS用、クリッカブルなinput要素のtypeのスタイルを修正。 */ button, html [type="button"], /* 1 */ [type="reset"], [type="submit"] { -webkit-appearance: button; /* 2 */ } /** * Remove the inner border and padding in Firefox. * Firefox用、button要素とinput要素の内側のパディングを取り除く。 */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /** * Restore the focus styles unset by the previous rule. * 前の指定により、フォーカス時のスタイルを再定義。 */ button:-moz-focusring, input:-moz-focusring { outline: 1px dotted ButtonText; } /** * Change the border, margin, and padding in all browsers (opinionated). * すべてのブラウザ用、fieldset要素のborder, margin, paddingプロパティを変更(オプション) */ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } /** * 1. Correct the text wrapping in Edge and IE. * 2. Correct the color inheritance from `fieldset` elements in IE. * 3. Remove the padding so developers are not caught out when they zero out * `fieldset` elements in all browsers. * 1. Edge, IE用、テキストのラッピングを修正。 * 2. IE用、fieldset要素からカラーが継承されないのを修正。 * 3. すべてのブラウザ用、fielset要素を取り除く時にデベロッパに分からないようにpaddingを取り除く。 */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /** * Remove the default vertical scrollbar in IE. * IE用、デフォルトの垂直方向のスクロールバーを取り除く。 */ textarea { overflow: auto; } /** * 1. Add the correct box sizing in IE 10-. * 2. Remove the padding in IE 10-. * 1. IE10用、正しいbox-sizingを定義。 * 2. IE10用、paddingを取り除く。 */ [type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** * Correct the cursor style of increment and decrement buttons in Chrome. * Chrome用、増減ボタンのカーソルのスタイルを修正。 */ [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } /** * Correct the odd appearance of search inputs in Chrome and Safari. * Chrome, Safari用、検索の入力エリアのアピアランスを修正。 */ [type="search"] { -webkit-appearance: textfield; } /** * Remove the inner padding and cancel buttons in Chrome on OS X and * Safari on OS X. * OS XのChrome, Safari用、キャンセルボタンの内側のpaddingを取り除く。 */ [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } |
sponsors