あなたのマージンとボーダーをゼロにするためにCSSを使う

今日のWebブラウザは、クロスブラウザの一貫性のある種のものが希望的な思考であった狂った日々から遠く離れています。 今日のWebブラウザはすべて標準に準拠しています。 彼らはうまく一緒に遊んで、さまざまなブラウザ間でかなり一貫したページ表示を提供します。 これには、Google Chrome、Microsoft Edge、Mozilla Firefox、Opera、Safariの最新バージョンと、今日のウェブサイトへのアクセスに使用されている無数のモバイルデバイス上にあるさまざまなブラウザが含まれます。

ウェブブラウザに関しては進歩は確かになされていて、CSSをどのように表示しているのか、これらの様々なソフトウェアオプションの間には依然として矛盾があります。 一般的な不一致の1つは、これらのブラウザがデフォルトでマージン、パディング、およびボーダーをどのように計算するかです。

ボックスモデルのこれらの側面はすべてのHTML要素に影響し、ページレイアウトを作成する上で不可欠であるため、一貫性のない表示は、あるブラウザでページが大きく見えるが、 この問題を解決するために、多くのWebデザイナーがボックスモデルのこれらの側面を標準化しています。 この方法は、余白、詰め物、および罫線の値をゼロにすることとしても知られています。

ブラウザのデフォルトに関する注意

Webブラウザはすべて、ページの特定の表示面に関するデフォルト設定を持っています。 たとえば、ハイパーリンクはデフォルトで青色で下線付きです。 これは、さまざまなブラウザ間で一貫しており、特定のプロジェクトの設計ニーズに合わせて設計者が変更するものですが、それらがすべて同じデフォルトで開始されているため、これらの変更を簡単に行うことができます。 悲しいことに、余白、パディング、および境界線のデフォルト値は、ブラウザ間の一貫性のレベルが同じではありません。

マージンとパディングの値を正規化する

一貫性のないボックスモデルの問題を解決する最善の方法は、HTML要素のすべての余白とパディング値をゼロに設定することです。 このCSSルールをスタイルシートに追加する方法はいくつかあります:

* {margin:0; パディング:0; }

このCSSルールでは、*またはワイルドカード文字が使用されます。 その文字は「すべての要素」を意味し、基本的にすべてのHTML要素を選択し、余白とパディングを0に設定します。このルールは非常に特殊なものですが、外部スタイルシートにあるため、デフォルトブラウザ値はそうです。 これらのデフォルトは上書きされているものなので、この1つのスタイルはあなたがするために設定しているものを達成します。

もう一つの選択肢は、これらの値をHTML要素とbody要素に適用することです。 ページ上の他の要素はすべてこの2つの要素の子になるため、CSSカスケードはこれらの値を他のすべての要素に適用する必要があります。

html、body {margin:0; パディング:0; }

これにより、すべてのブラウザで同じ場所でデザインが開始されますが、忘れてはならないのは、一度マージンとパディングをオフにすると、ウェブページの特定の部分を選択的に戻して、あなたのデザインが求めていると感じます。

罫線

「デフォルトでは、body要素の周りに境界線があるブラウザはありません」と思っているかもしれません。 これは厳密には当てはまらない。 古いバージョンのInternet Explorerでは、要素の周囲に透明または不可視の境界線があります。 境界線を0に設定しない限り、その境界線がページレイアウトを壊す可能性があります。 これらの古いバージョンのIEを引き続きサポートすることに決めた場合は、本文とHTMLスタイルに次のものを追加することで対処する必要があります。

HTML、body {
マージン:0px。
パディング:0px。
border:0px;
}

余白やパディングをオフにしたのと同様に、この新しいスタイルではデフォルトの枠線もオフになります。 また、前の記事で示したワイルドカードセレクタを使用して同じことを行うこともできます。

Jennifer Kryninのオリジナル記事。 ジェレミージラール編集:9/27/16