Sponsored Link
この記事の目次
cssリセット
レイアウト崩れはブラウザ独自のcssが原因であることが多い。
以前、ブラウザによるhtmlとcssの解釈の違いがあり、
それが原因でレイアウト崩れを起こしたり、使えない機能があると話しました。
これは、Google ChromeやEdgeなどのブラウザが、独自のcss(以下:ブラウザcss)をすでにブラウザに設定しており、
自分が書いたcssの設定が、そのブラウザcssに影響を受けてしまうことが原因です。
そのため制作時に自分がテストしていたブラウザ以外では期待通りの表示がされず、
レイアウトが崩れたり、動画が再生されなかったり、アニメーションが動かなかったりしてしまうんです。
レイアウト崩れの代表的な例・・・marginとpaddingの余白
代表的なものを例に挙げます。
コーディング経験の浅いデザイナーがだいたい最初に困るのが、
要素の内側と外側の幅、そして外枠線のサイズ計算の解釈の違いです。
cssで頻繁に使うプロパティで、
「指定要素と周りの要素との間の距離であるmargin」、
「指定要素の内側の余白の距離であるpadding」、
「指定要素の外側の枠線であるborder」
というものがあります。
「h1」タグを使って説明します。
htmlファイル
<html>
<h1>ウェブデザインA</h1>
</html>
次にcssで以下を記述し指定を行います。
cssファイル
h1 {
width: 200px; /* width・・・ボックスの幅 */
height: 200px; /* height・・・ボックスの高さ */
margin: 20px; /* margin・・・ボックスから周りの要素までの上下左右距離 */
padding: 20px; /* padding・・・ボックスの内側の上下左右の余白の距離 */
background-color: yellow; /* background-color・・・ボックスの背景色 */
border: 1px solid red; /* border・・・ボックスの外枠線の太さや形状や色 */
}
このように記述すると、Google ChromeやFirefox、Safariなどのモダンブラウザ(Web標準の技術を採用したブラウザ)ではこう表示されます。
逆にレガシーブラウザ(Web標準の技術をサポートしきれていないブラウザ)で見るとこう表示されます。
Internet Explorerだと指定した200pxにpaddingとborderの値が足されてしまい、
ボックスのサイズが大きくなってしまっています。
これにより、実際にcssで指定したサイズよりも幅や高さが大きくなり、レイアウトが崩れてしまうことがあります。代表的なもので「カラム落ち」というものがあります。下の画像をみてください。
2カラム(横並び2列)の標準的なレイアウトを行った場合に、モダンブラウザで見ると横並びしてくれるのに、
レガシーブラウザで見ると右側のカラムが下に落ちてる!ということになってしまったりします・・・ダルい。
cssを使ってブラウザ独自のcssをリセットする。
そこで、「それならブラウザのcssで設定されている内容を初期化(リセット)してしまおう」というのがcssリセットの考え方。
ブラウザ独自のcssを上書き無効化してリセットすることで、
レイアウト崩れなどのブラウザ間の表示の違いを最小限にとどめるのが狙いです。
あらかじめ最初の段階でリセットしておくことで表示の崩れは最小限にとどめることができます。
また、リセットしてもなお表示崩れを起こしていたとしても、
リセットされていない箇所に崩れの原因があるはずなので、
原因を見つけ出しやすく修正作業も簡単です。
結論:授業で使用しているcssリセット
前置きが長くなりましたが、授業で使用しているcssリセットのコードは以下です。
See the Pen reset.css by 脇坂基徳 (@rvyolqet-the-vuer) on CodePen.