em
すべてのブラウザーがズーム機能をサポートするようになる前は、アクセシビリティの優れた方法と見なされていました。現在、特定のシナリオ (おそらくあなたのシナリオ) で相対的なフォント サイズを簡単に宣言するのに最も役立つことがわかりました。
一部のブラウザーは、またはパーセンテージ計算から派生した浮動小数点値を文字通り使用しようとし、結果があいまいになるため、相対的なサイズ変更では境界線で美的に満足のいく結果が得られないことがわかりました (試してみてください)。em
私はほとんどのレイアウトでパーセンテージを多用しています。いくつかの一般的なパーセンテージ ベースのスタイルが、多数のレイアウト ニーズ (50/50 分割、33/67、25/75 などのスタイルなど) をカバーできることがわかりました。
個人的には、パーセンテージの方が直感的に扱えると思います。幅が 100% の要素は、常にその親の 100% を占有し (もちろん、適切なボックス サイズで)、コードでそれを読み取るのは簡単です。幅が 15em の要素は、親要素の 50% または 150% を占める場合があります。それは直接明らかではなく、追跡するのが難しいと思います(しかし、それは私だけかもしれません)。
ここにいくつかのベースライン スタイルがあります。これらはすべてのブラウザ/デバイスでテストされたわけではありませんが、本番アプリケーションで使用されています:
* {
border-style: none;
border-color: inherit;
border-width: 0;
padding: 0;
margin: 0;
vertical-align: baseline;
}
BODY {
font: 11px/1.5 "Trebuchet MS", Arial, Verdana, sans-serif;
color: #404040;
background-color: #fff;
}
H1 {
font-size: 1.8em;
margin: .1em 0 .1em 0;
color: #2B265B;
}
H2 {
font-size: 1.6em;
margin: 0 0 .25em 0;
color: #303030;
}
H3 {
font-size: 1.4em;
margin: 0 0 .25em 0;
color: #3b5998;
}
H4 {
font-size: 1.2em;
margin: 0 0 .1em 0;
color: #666;
}
P {
margin: 0 0 1.5em 0;
font-size: 1.1em;
}
INPUT, SELECT, TEXTAREA {
border-style: solid;
vertical-align: middle;
margin: .2em 0 .2em 0;
border-radius: .3em;
-moz-border-radius: .3em;
}
INPUT[type="text"], INPUT[type="password"]{
border-color: #85a3bf;
width: 16em;
padding: .2em;
border-width: 1px;
}
INPUT[type="file"] {
border-color: #85a3bf;
width: 32em;
padding: .2em;
border-width: 1px;
}
INPUT[type="text"]:focus, INPUT[type="password"]:focus, TEXTAREA:focus {
border-color: #0066cc;
}
INPUT[type="submit"], INPUT[type="button"] {
border-color: #DDDDDD #BBBBBB #999999;
border-width: 1px;
background: #eee url([URL]) repeat-x;
padding: .2em .8em .2em .8em;
text-shadow: 1px 1px #fff;
}
INPUT[type="submit"]:hover, INPUT[type="button"]:hover {
background: #eee url([URL]) repeat-x;
}
INPUT[type="submit"]:active, INPUT[type="button"]:active {
background: #eee url([URL]) repeat-x;
}
INPUT[type="checkbox"], INPUT[type="radio"] {
margin: 0px .5em .1em .5em;
vertical-align: middle;
}
INPUT[type="image"] {
border: 0;
margin: 0;
}
SELECT {
padding: .1em;
border-width: 1px;
border-color: #DDDDDD #BBBBBB #999999;
background: #eee url([URL]) repeat-x;
}
TEXTAREA {
border-width: 1px;
border-color: #85a3bf;
padding: .3em;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}