ここでは横幅や縦幅を設定したり、要素間の余白を設定することのできるプロパティについてお伝えします。
前提としてサイトのレイアウトに用いるのはブロック要素(次ページで解説します)です。
<span>
や <a>
では書かずに <div>
などで記述していきましょう。
(box-model.html)
要素の横幅の指定をするプロパティ。
サイトレイアウト時には必ず用いるプロパティです。
ブロック要素(後述します)何も指定しないと要素の幅は自動でブラウザ幅いっぱいに広がります。
以下のようにすると500pxの細長いブロックができると思います。
<div class="width">横幅</div>
.width { width: 500px; /* 初期値はauto */ background-color: skyblue; }
子要素の幅は親要素よりも小さくしてください。
はみ出してしまうとレイアウトが難しくなるので、親要素の幅以内にしておきましょう。
または、 width: auto
(初期値のまま)で構いません。
高さの指定をするプロパティ。
Webサイトをレイアウトする上で、高さは可変するものだと考えがあるため height
を設定する事はあまりありません。
ボタンなどのパーツで指定する場合があるので覚えておきましょう。
width: auto
と異なり、height
は縦いっぱいには広がりません。
文字や画像などの要素の中身の分だけの高さになります。
固定値500pxを指定してみましょう。
<div class="height">高さ</div>
.height { height: 500px; /* auto */ background-color: skyblue; }
こちらもあまり指定することはありませんが、高さを % パーセントで設定したい時は覚えておきましょう。
下記の図を見てください。
padding-margin.html
<div class="top">上部</div> <div class="middle">マージンとパッディング</div> <div class="bottom">下部</div>
.top {background: skyblue;} .middle { background: orange; margin-top: 20px; margin-right: 0; margin-bottom: 60px; margin-left: 40px; padding-top: 20px; padding-right: 40px; padding-bottom: 0; padding-left: 100px; } .bottom {background: silver;}
.middle { background: orange; margin: 20px 0 60px 40px; padding: 20px 40px 0 100px; }
順番に「上、右、下、左」
.middle { background: orange; margin: 20px 0 60px; padding: 20px 40px 0; }
順番に「上、左右、下」
.middle { background: orange; margin: 20px 60px; padding: 20px 0; }
順番に「上下、左右」
マージンの指定が隣接すると、適用されるマージンは値が大きい方しか適用されません。
※左右のマージンは相殺されない
「px」「%」という単位ではなく、「auto」という値を指定することで、要素を左右真ん中配置にする事ができます。
<div class="auto-center"> <p class="text">要素を左右真ん中配置にする事ができます。</p> </div>
.auto-center { background-color: #EEEEEE; } .auto-center .text { width: 100px; margin: 0 auto; background-color: skyblue; }
また、横幅(width: 100px)を指定した状態で、marginの左右のどちらかにautoを指定すると、指定した方に数値を自動的に算出します。
margin: auto 0;
では、上下中央配置はできない。padding: 0 auto;
では、中央配置はできない。