概要
normalize.cssとは、
どのWebブラウザでも同じ表示、
同じ動作を再現できるように
HTMLの要素の既定値を提供する
HTML5にも対応した
CSSファイルです。
このページは、CSSリセット「normalize.css」を用いてのHTMLの見た目を例示するページです。
ヘッダ, フッダなど制御用の箇所は、例外として別途のスタイルシートを特定の箇所をセレクタで限定する方法で記述しています。
古いブラウザでも確認程度は出来る事を目標としています。
文法としては HTML5 で記述しています。
あくまでnormalize.cssを用いた場合の見た目のサンプルであり、HTML の各要素の例示ではありません。
とは言っても、HTML の各要素を提示しないと効果が見えないので、それなりの要素の例示にはなるかと思います。
尚、CSS外部ファイルを取り換えればそれなりの描画になるような HTML の記述にしています。
html, body, main要素
html {
line-height: 1.15;
-webkit-text-size-adjust: 100%;
}
line-height: 1.15;
は、すべてのブラウザで行の高さを修正します。line-height は継承ありなので、html(root)要素に記述すれば、以下で新たに記述されるまで継承されます
-webkit-text-size-adjust: 100%;
は、iOSで向きを変更した後のフォントサイズの調整を防止します。ベンダープレフィックス付きなのは、text-size-adjust のプラウダ実装状況によります。
body {
margin: 0;
}
margin: 0;
は、すべてのブラウザでマージンを削除します。このリセットのページでは何か文字が端っこにあり読みづらいですが、その場合は個々の要素に margin, padding を設定するという考えです。その結果、hr 要素などが端まで表示されています。
main {
display: block;
}
display: block;
は、IEで一貫して main 要素をレンダリングします。HTML5 での新しい要素での対応状況によっての記述ですが、HTML5 での display: block; 相当の新しい要素は全て定義しても良いと思います。
h1, hr, pre, code, kbd, samp要素
h1例1
h1例2
h1例3
整形済み
改行してみた。 空白も複数で
code要素
と
kbd要素と
samp要素の例
<h1>h1例1</h1>
<section>
<h1>h1例2</h1>
<section>
<h1>h1例3</h1>
</section>
</section>
<hr>
<pre> 整形済み
<br > 改行してみた。
空白も複数で</pre>
<code>code要素</code>と
<kbd>kbd要素</kbd>と
<samp>samp要素</samp>の例
h1 {
font-size: 2em;
margin: 0.67em 0;
}
font-size: 2em;
と margin: 0.67em 0;
は、section 内の h1 要素のフォントサイズとマージンを修正し、Chrome、Firefox、Safariの `article`コンテキスト。コンテンツセクショニング要素により、その階層の深さによって h1 要素の font-size などが違うというブラウザの振る舞いをリセットする記述です。コンテンツセクショニング要素を使いCSSリセットを使わず h1 等をサイズ指定しないで使って初めて気づくという処なので。
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
box-sizing: content-box;
と height: 0;
は、Firefoxで正しいボックスサイズを追加します。
overflow: visible;
は、EdgeとIEでオーバーフローを表示します。
code,
kbd,
samp,
pre {
font-family: monospace,
monospace ;font-size: 1em;
}
font-family: monospace, monospace;
は、すべてのブラウザでフォントサイズの継承とスケーリングを修正します。font-family: monospace;
だと、サイズが小さくなってしまうので、その対応です。
font-size: 1em;
は、すべてのブラウザで奇数の `em`フォントサイズを修正します。
a, abbr, b, strong, small, sub, sup, img要素
<a href=
"./index.htm">トップページへ</a> <a href=
"./index.htm"> <img src= "./hani_c0504.gif" alt= "sample"></a><br> <abbr title=
"Cascading Style Sheets">CSS</abbr>は、 カスケーディング・スタイル・シートの略語で、…<br>
<b>b要素</b>と
<strong>strong要素</strong>の例
<small>small要素</small>の例
H<sub>2</sub>OとX<sup>2</sup>の例
a {
background-color: transparent;
}
background-color: transparent;
は、IE 10でアクティブなリンクの灰色の背景を削除します。
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted;
}
border-bottom: none;
は、Chrome 57の下枠を削除します。
text-decoration: underline;
と text-decoration: underline dotted;
は、Chrome、Edge、IE、Opera、Safariに正しいテキスト装飾を追加します。
b,
strong {
font-weight: bolder;
}
font-weight: bolder;
は、Chrome、Edge、Safariで正しいフォントの太さを追加します。
small {
font-size: 80%;
}
font-size: 80%;
は、すべてのブラウザで正しいフォントサイズを追加します。
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
sub 要素と sup 要素が、すべてのブラウザーの行の高さに影響を与えないようにします。
img {
border-style: none;
}
border-style: none;
は、IE 10のリンク内の画像の境界線を削除します。
フォーム要素
<form>
<fieldset>
<legend> legend の例</legend>
<label for=
"iinInput">Sample input:</label><br> <input id=
"iinInput" size= "12"><br><br> <label for=
"iinNumber">Sample input number:</label><br> <input id=
"iinNumber" type= "number"><br><br> <label for=
"iinSearch">Sample input search:</label><br> <input id=
"iinSearch" type= "search" size="12"><br><br> <button>ボタンの例</button><br><br>
<input type=
"button" value= "input button"><br><br> <input type=
"reset" value= "input reset"><br><br> <input type=
"checkbox" id= "iinCheckbox" name= "ninCheckbox" checked> <label for=
"iinCheckbox">: Sample checkbox</label><br><br> <input type=
"radio" name= "ninRadio" value="radio1" checked> <input type=
"radio" name= "ninRadio" value="radio2"> <input type=
"radio" name= "ninRadio" value="radio3"><br><br> <select id="iseSelect">
<optgroup label="optgroup例1">
<option>option例1-1</option>
<option>option例1-2</option>
<option>option例1-3</option>
</optgroup>
<optgroup label="optgroup例2">
<option>option例2-1</option>
<option>option例2-2</option>
<option>option例2-3</option>
</optgroup>
</select><br><br>
<textarea id="iteTextarea" name="iteTextarea"
rows="3" cols="15">
textarea sample.
</textarea><br><br>
<progress value="70" max="100">70 %</progress>
</fieldset>
</form>
button,
input,
optgroup,
select,
textarea {
font-family: inherit;
font-size: 100%;
line-height: 1.15;
margin: 0;
}
すべてのブラウザでフォントスタイルを変更します。
margin: 0;
は、FirefoxおよびSafariでマージンを削除します。
button,
input {
overflow: visible;
}
button, input{
は、IEでオーバーフローを表示します。
input {
は、Edgeでオーバーフローを表示します。
button,
select {
text-transform: none;
}
button, select{
は、Edge、Firefox、IEのテキスト変換の継承を削除します。
select {
は、Firefoxのテキスト変換の継承を削除します。
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
-webkit-appearance: button;
は、iOSおよびSafariでクリッカブルタイプをスタイルできない問題を修正しました。
button
::-moz-focus-inner ,[type="button"]
::-moz-focus-inner ,[type="reset"]
::-moz-focus-inner ,[type="submit"]
::-moz-focus-inner {border-style: none;
padding: 0;
}
button
:-moz-focusring ,[type="button"]
:-moz-focusring ,[type="reset"]
:-moz-focusring ,[type="submit"]
:-moz-focusring {outline: 1px dotted ButtonText;
}
border-style: none;
と padding: 0;
は、Firefoxで内側のボーダーとパディングを削除します。
outline: 1px dotted ButtonText;
は、前のルールで設定されていないフォーカススタイルを復元します。
fieldset {
padding: 0.35em 0.75em 0.625em;
}
padding: 0.35em 0.75em 0.625em;
は、Firefoxのパディングを修正します。
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal;
}
color: inherit;
は、IEの fieldset 要素からの色の継承を修正します。
padding: 0;
は、パディングを削除して、開発者がすべてのブラウザーで fieldset 要素をゼロにしたときに引っ掛からないようにします。
上記以外は、EdgeおよびIEでのテキストの折り返しを修正します。
progress {
vertical-align: baseline;
}
vertical-align: baseline;
は、Chrome、Firefox、Operaで正しい垂直配置を追加します。
textarea {
overflow: auto;
}
overflow: auto;
は、IE 10以降のデフォルトの垂直スクロールバーを削除します。
[type="checkbox"],
[type="radio"] {
box-sizing: border-box;
padding: 0;
}
box-sizing: border-box;
は、IE 10で正しいボックスサイズを追加します。
padding: 0;
は、IE 10のパディングを削除します。
[type="number"]
::-webkit-inner-spin-button ,[type="number"]
::-webkit-outer-spin-button {height: auto;
}
height: auto;
は、Chromeの増分ボタンと減分ボタンのカーソルスタイルを修正しました。
[type="search"] {
-webkit-appearance: textfield;
outline-offset: -2px;
}
-webkit-appearance: textfield;
は、ChromeとSafariの奇妙な外観を修正しました。
outline-offset: -2px;
は、Safariのアウトラインスタイルを修正します。
[type="search"]
::-webkit-search-decoration {-webkit-appearance: none;
}
-webkit-appearance: none;
は、macOSでChromeとSafariの内側のパディングを削除します。
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit;
}
-webkit-appearance: button;
は、iOSおよびSafariでクリッカブルタイプをスタイルできない問題を修正しました。
font: inherit;
は、Safariでフォントのプロパティを「継承」に変更します。
インタラクティブ要素
Details
インタラクティブ要素のサンプル<details>
<summary>Details</summary>
インタラクティブ要素のサンプル
</details>
details {
display: block;
}
display: block;
は、Edge、IE 10以降、Firefoxで正しいディスプレイを追加します。
summary {
display: list-item;
}
display: list-item;
は、すべてのブラウザで正しい表示を追加します。
その他
ここにtemplate要素とhidden属性の例があります。
(display: none;
なので見えませんが。)
<template>templateの例</template>
<div hidden>hidden属性の例</div>
template {
display: none;
}
display: none;
は、IE 10以降で正しいディスプレイを追加する
[hidden] {
display: none;
}
display: none;
は、IE 10以降で正しいディスプレイを追加する