―(マイナス)マージンで重ねあわせる
今回のテクニックはマージンを使って重ね合わせてみます。 テーブルデザインだと、とんでもなく面倒なことも、スタイルシートなら割と簡単です!
テクニック使用前
見出しです
本文です。これでも特に問題は無いのですが、もうちょっと手を加えてみましょう!
テクニック使用後
見出しです
見出しを上にずらして、重ねてみました。テーブルで組むのは至難の技だけど、CSSなら簡単!
テクニック使用後のソースは次のようになります。
div.sample1{ border:solid 2px #663300; width:200px; background-color:#FFFFFF; position:relative; } h6.sample1{ border:solid 2px #663300; width:120px; text-align:center; font-size:medium; background-color:#CC996F; margin:0px; margin-top:-10px; position:relative; } p.sample1{ padding:0px 1em; text-align:left; }
HTML
<div; class="sample1">
<h6; class="sample1">見出しです</h6>
<p; class="sample1">
本文です。これでも特に問題は無いのですが、もうちょっと手を加えてみましょう!
</p>
</div>
注目して欲しいのは赤字の部分です。
position:relative;を忘れるとIE6では上手く表示されないので、必ずつけてください。
margin:0px;はブラウザーによる崩れを防ぐために必要です。
margin-topの値はお好みでどうぞ。
なぜtopを使わないのか?
position:relative;を設定しているので、margin-topのかわりにtopを使っても同じ結果が得られそうですが、 上手くいきません。次のサンプルはmargin-top:-10px;のかわりにtop:-10px;をしたものです。
見出しです
top:-10px;だと余白の大きさが変わってしまいます。
marginのときとは下に来る要素の位置の計算方法が違うため、表示が意図した通りにはなりません。 できないことはないですが、めんどくさいです。
使いこなすための+α
上にずらす場合はmarginでしたが、横にずらす場合はどうしましょう?
marginで横にずらした場合
見出しです
サンプルにmargin-left:-20px;を追加してみました。
leftで横にずらした場合
見出しです
サンプルにleft:-20px;を追加してみました。
私が確認した限りでは、どちらでも問題はないようです。
一括指定ができることを考えると、marginの方がいいと思います。
もし、上手くいかないなどの問題があれば報告お願いします。