marginとpaddingの小話
CSSを書き始めたばかりのときって、
margin,paddingの指定についてつまづきがちなことが多い気がするので
自分の備忘録がてら書いて行こうと思います。
IE6は葬式が行われたので書いてないですあしからず。
margin,paddingって?
- margin : 領域外の余白
- padding : 領域内の余白
文章より画像で見た方がわかりやすいですよね!
簡単に言えば
marginは背景とまた別で余白が欲しいとき
paddingは背景付きで余白が欲しいとき
という風に考えたら覚えやすいかなって思ってます!
指定方法
値を2つ指定するときは
margin: 上下 左右; (paddingも同じ)
値を3つ指定するときは
margin: 上 左右 下;
値を4つ指定するときは
margin: 上 右 下 左;
値を4つ指定するときは"時計回りに指定"って覚えると覚えやすいです!
自分はいつも忘れたら時計周りに指を動かしながら考えてます(笑)
上に書いたのは値を複数指定するときの場合ですが、
margin-top,margin-bottom,margin-light,margin-right
のように個別に指定することも可能です!
marginの相殺について
例えばボックスが2つあったとき、
左右マージンはされないけど垂直方向(上下)のマージンは
相殺といってマージンの値が大きい方ののマージンを採用して表示されます。
divが入れ子になっているときも同じで
マージン値が大きい方のマージンが採用されるので注意が必要です!
ブロック要素を中央寄せしたいとき
#div{
width: 500px;/*幅の指定*/
margin: 0 auto;/*中央揃えにする*/
}
divなどのブロック要素を中央揃えにしたいときにtext-alignを利用するのは間違いです!
(text-alignはインライン要素に指定するCSSです! IE6は上の記述だと中央揃えにならないけどX( )
なのでブロック要素を中央に寄せたいときは、
幅を指定して、マージンの左右の指定をautoにすると中央揃えにできます!
メモ:画像を中央寄せしたいとき
#div img{
text-align: center;/*中央揃えにする*/
}
画像などのインライン要素を中央に寄せたいときは、マージンを使わずに、
text-alignで指定しましょう!
指定してうまく行かなかったときは、
firefoxならfirebug
GoogleChromeならディベロッパーツールで確認するのがおすすめです!
私がchromeユーザなのでchromeについて説明しますが、
Googlechromeの設定からツールのディベロッパーツールを選択すると
こんな画面がでてきます!
虫眼鏡ツールで確認したい部分をフォーカスして調べることができるので便利です!
GoogleChromeならMetricsというツールで
マージン、パディング、ボーダーの指定を確認することができます!
すごく便利です!(大事だから何度でも言います