Webページの見栄えをよくするたった58バイトのCSS
Post on:2022年10月20日
ほとんどのWebページの見栄えをよくするたった58バイトのCSSを紹介します。
3つのプロパティだけですが、Webページを実装する時の最初のスタイルとして用意しておくとよいかもしれません。
また、ボーナスの100バイト版とオプションのさらに100バイト版も合わせて紹介します。
58 bytes of CSS to look great nearly everywhere
by @JoeyBurzynski
下記は各ポイントを意訳したものです。
※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。
Webページの見栄えをよくする58バイトのCSS
Webページを作るとき、ほとんどのディスプレイできれいに見えるようにするために、シンプルで合理的な方法を考えました。ミニファイはなし、以下の58バイトのCSSでうまくいきました。
※CodePenではhtml
ですが、GitHubの最新版ではmain
になっています。
1 2 3 4 5 |
main { max-width: 38rem; padding: 2rem; margin: auto; } |
実際の動作は、下記でご覧ください。
See the Pen
58 bytes of CSS to look great nearly everywhere by Joey Burzynski (@JoeyBurzynski)
on CodePen.
58バイトのCSSの解説
58バイトのCSSを解説します。
1 2 3 4 5 |
main { max-width: 38rem; padding: 2rem; margin: auto; } |
max-width: 38rem;
多くのブラウザのデフォルのフォントサイズは16px
なので、38rem
は608pxになります。600pxのディスプレイをサポートすることは、合理的だと思います。
padding: 2rem;
ディスプレイの幅が38rem
を下回る場合、このpadding
によって256pxあたりまで見栄えがよくなります。オプションに思えるかもしれませんが、実際には一石二鳥の効果があります。padding
はショートハンドなので、左右だけでなく上下の余白も提供します。
margin: auto;
HTML Living Standardでは、main
はブロック要素であるため、Webページの中央に配置するために必要なのはauto
だけです。
重要な洞察
ここに到達するまでに、驚くほど多くの工程が必要でした。おそらく、私が「モダン」Web開発について何も知らないという事実を物語っているか、あるいは複雑化した世界でシンプルに保つことがいかに難しいかを物語っています。
アップデート 1
いくつかの議論を経て、スマホとデスクトップのディスプレイでよりよい妥協ができるように、padding
を1.5rem
に変更します。
アップデート 2
ch
単位について指摘を受け、非常に気に入ったので、70ch/2ch
に変更します。padding
がすこし小さくなることを除けば、2バイト少なくなり、見た目はほぼ同じです(スマホにとっては良いことです)。
また、コメントには、これらを1行にまとめたバージョンもありました。
1 2 3 |
main { margin: 2rem max(2rem,50% - 19rem); } |
max()
関数について詳しくは下記をご覧ください。
Webページの見栄えをよくする100バイトのCSS
100 Bytes of CSS to Look Great Everywhere (enhanced version) -CodePen
ほとんどのディスプレイで見栄えを良くするため100バイトのCSS(拡張版)です。
1 2 3 4 5 6 7 |
html { max-width: 70ch; padding: 3em 1em; margin: auto; line-height: 1.75; font-size: 1.25em; } |
100バイトのCSSの解説
100バイトのCSSを解説します。
1 2 3 4 5 6 7 |
html { max-width: 70ch; padding: 3em 1em; margin: auto; line-height: 1.75; font-size: 1.25em; } |
max-width: 70ch;
読みやすい文章の幅は、通常60-80文字幅(訳者注: 半角英数文字なので、日本語にすると30-40文字幅)で、CSSでは文字幅に基づくch
という単位を使用できます。70ch
は、70文字幅になります。
padding: 3em 1em;
ディスプレイの幅が上記で設定したmax-width
を下回る場合、このpadding
によってスマホでテキストを両端いっぱいになるのを防ぐことができます。そして、3em
を使用して、上下の余白を確保します。
margin: auto;
ページを中央に配置するために必要なのはこれだけです。
セマンティックなタグがないため、html
に設定しています。これはほとんどのサイトに存在する可能性が高いからです。一番上位のタグが何もないのに対して中央にというのは直感的ではありませんが、これがブラウザの仕様なのです。
line-height: 1.75;
視覚的な明瞭さを増すために、行間を空けます。理由があるため、値は常に単位なしのままにします。
font-size: 1.25em;
最近のデザイントレンドやスクリーンサイズは、文字サイズが大きくなる傾向にあります。それとも私が年をとったせいでしょうか。ユーザーに拡大縮小できるように、px
よりもem
やrem
を使用してください。
html
の代わりに:root
を使用すれば、セレクタが存在することを保証できますが、私にはちょっと派手すぎるし、バイト数が多くなってしまいます。
オプションでさらに100バイト
見出し、パラグラフやリストの見栄えをよくするオプションです。
1 2 3 4 5 6 7 8 9 |
h1,h2,h3,h4,h5,h6 { margin: 3em 0 1em; } p,ul,ol { margin-bottom: 2em; color: #1d1d1d; font-family: sans-serif; } |
sponsors