ネガティブマージンを使うと、余計な要素を押し出して消すと言うことが可能になります。今回はそれを使い、パンくずリストを作る方法です。
まず、サンプルとして、以下のようなパンくずリストのコードがあるとします。カテゴリ同士をつなぐ「>」の記号は、背景画像で表すとします。
HTML
2 | <li><a href= "/" >ホーム</a></li> |
3 | <li><a href= "/cat01/" >カテゴリ1</a></li> |
4 | <li><a href= "/cat01/page01.html" >ページ1</a></li> |
CSS
6 | padding: 0 10px 0 15px; |
7 | background: url(./bg.gif) no-repeat center left; |
サンプルページ
このままですと、ホームの左の余白と背景画像が邪魔となってしまいます。そこで、ネガティブマージンとoverflowを使い、余計な部分を消します。
HTML
3 | <li><a href= "/" >ホーム</a></li> |
4 | <li><a href= "/cat01/" >カテゴリ1</a></li> |
5 | <li><a href= "/cat01/page01.html" >ページ1</a></li> |
CSS
10 | padding: 0 10px 0 20px; |
11 | background: url(./bg.gif) no-repeat center left; |
サンプルページ
ポイントとしては、左に設定したpaddingの値と同じ値のネガティブマージンを設定することです。そのようにすることで、「ホーム」の左側の余白を詰めることができます。
ネガティブマージンを指定することで、ホームの左の余白を詰め、overflowにhiddenを指定することで、押し出された部分の背景を隠すことが出来ます。こうすることで、li要素にクラスをつけることなく、パンくずリストを整形することが出来ます。