中・上級向け:ネガティブマージンの思わぬ使い道
またまた今月号のweb creators10月号からちょっと面白い記事を見つけたので。
ネガティブマージンについてですが、おそらくあまり使ったことがないという人が大半だと思います。実際に私もそうです。
読んでいる掲載元がよく分からなかったのでスルーしかけたのですが、再度じっくり読んで発想の転換のような考え方で――。
では早速。
<div class="box">
<h3>見出し</h3>
<p>テキスト</p>
</div>
.box{
border:solid 1px #000;
padding:20px;
zoom:1;
}
.box h3{
background:#00ccff;
margin:-20px -20px 1em;
padding:0.3em 20px;
}
これははじめにボックスに対して指定し、あとから見出しに対して再指定しているところにあります。
つまりボックスに対してpadding:20px;があるので、その入れ子のh3に対してもpadding:20px;が効いています。
そこでh3に対しては幅いっぱいに見出しをとりたい場合、逆にpadding:20px;は必要ないので、margin:-20px -20px 1em;を指定しています。このmarginの二つ目の値が重要です。これでボックスいっぱいに見出しが拡張しました。
これで一応完成ですが、見出しの見栄えをもう少し整えたいということでh3にpadding:0.3em 20px;を指定。
なるほどな〜と思いつつ、多分使わないけど目から鱗ですね。