サポートに連絡

メールでご返信します。通常は2日以内です。

不正利用を防ぐため、Google reCAPTCHA がこの送信を確認します。その際データが Google に送られます。スクリプトはこのフォームを開いたときにだけ読み込まれます。

← すべての記事

ヘッダーとフッターが画面幅いっぱいに

ここにあるすべてのページで見られる、ちょっとした変更です。上部の暗い帯と下部のフッターが、ウィンドウの端から端まで伸びるようになりました。

今日までは、それらもほかの要素と同じ1180ピクセルの列の内側に収まっていたため、幅の広い画面では、ページが何もない背景の中に浮かぶ1本の帯のようになっていました。統計ページのフッターだけはすでに全幅になっており——そこだけが例外だったという不整合が、この変更のきっかけです。

変わらなかったこと

その帯の中身です。テキスト、ボタン、数字は、下にあるセクションと同じ1180ピクセルの位置に揃ったままなので、帯自体は広くても、文章の幅は広くなりません。100文字もある行を読みたい人はいませんし、27インチのモニターいっぱいに引き伸ばされた見出しは、デザインではなく単なる見落としです。

よくある手法を使わなかった理由

要素を中央揃えの列からはみ出させる一般的な方法は、100vwに対して負のマージンを設定することです。これには、スクロールバーを非表示にしたデスクトップでは見落としやすい欠点があります。vwにはスクロールバーの幅も含まれるのです。結果としてブロックは、その幅の分だけ表示領域より広くなり、ページ全体が横方向に数ピクセルずれて動かせてしまいます——スマートフォンでは、読もうとしている最中に指の下でレイアウトが揺れる、ということになります。

そのため、この帯は外側に広がるのではなく、最初から広い状態にしておき、内側に向けてパディングを付けています。

可視領域100vwスクロールバーは 100vw に含まれる

padding-inline: max(20px, calc((100% - 1180px) / 2))

パーセンテージは要素の親要素、つまりこの場合はページのbodyを基準に解決され、そこにはスクロールバーは含まれません。1180ピクセルを下回ると、最初の値が優先され、帯はマイナスのマージンではなく、妥当な20ピクセルのマージンを保ちます。2つ目のラッパー要素も、JavaScriptも、実行時に測定する必要もありません。

適用範囲

トップページ、aboutページ、そしてすべての統計ページです。この3つすべてで同じ構造になっている、というのがこの変更の狙いでした。

広告