【11-3】はみ出て便利♪ ネガティブ・マージン(Negative Margin)
最終更新日:2017年11月13日 (初回投稿日:2015年11月17日)marginは、正の数値だけじゃなく、マイナスの数値も指定できます。
これを、ネガティブ・マージン(Negative Margin)と言います。
古くから(CSS1から)あるので、IE6でも表示できます。
マイナスの数値で指定すると、マージンが親要素を突き破って外に出るというイメージ。
中身がはみ出るって言ったほうがわかりやすいかも。
マイナスのマージンを与えるだけで、要素を簡単にはみ出させることができるので、レイアウトするのにとっても便利。これは知っててお得です。
サンプルを見てみましょう。
あんまり実用的なサンプルじゃないけど、中身がはみ出る様子はわかりますね。
- List1
- List2
HTMLはこちら。
<div id="sample1">
<ul>
<li>List1</li>
<li>List2</li>
</ul>
</div>
CSSはこちら。
div#sample1 {
border:solid 1px #ccc;
font-weight:bold;
margin:0 auto 3em;
padding:0;
width:90%;}
div#sample1 ul {
padding:0;
margin:0 -2em -2em 0;} /*マイナスの値が ネガティブ・マージン*/
div#sample1 ul li {
margin:1em;
padding:1em;
list-style:none;
background:rgba(102, 153, 255, 0.5);
border-radius:5px;
color:#fff;
line-height:1em;}
<ul>に右のネガティブ・マージン -2em を指定すると、<ul>は親の<div>から右が2emはみ出ます。
中の<li>には margin: 1em と指定しているので、<ul>の右端より1em 中に入る。
なので <li>要素はトータル 1em だけ <div>から右にはみ出ているように見えるんです。
下側のネガティブ・マージン(margin-bottom: -2em)も同じことです。
では、もうちょっと実用的なサンプルを。

How to use Negative Margin
こんな↑かんじで、img要素に ネガティブ・マージンを使って、親要素からはみ出させることができます。( position: absolute を使う方法もありますが、マージンだけでできるって便利ですね)
このように↑ hr要素の左右に ネガティブ・マージンを使って、親要素の padding の分をはみ出させて、親要素の border にくっつけることもできます。
HTMLはこちら。
<div id="sample2">
<img src="img/column.png" alt="column">
<h4>How to use Negative Margin</h4>
<hr>
<p>こんな↑かんじで、img要素に...(略)</p>
<hr>
<p>このように↑ hr要素の左右に...(略)</p>
</div>
CSSはこちら。
div#sample2 {
border:solid 1px #c2da69;
padding:0 1em; width:90%;
margin:0 auto;}
div#sample2 img {
display:inline-block;
vertical-align:text-bottom;
margin:-1em 0 -1em -3em;}
div#sample2 h4 {
display:inline-block;
margin:0;
padding:0;
color:#9cb737;
font-size:140%;
line-height:2em;}
div#sample2 hr {
border:none;
height:0;
border-bottom:#c2da69 solid 1px;
margin:0 -1em;}
div#sample2 p {margin:1em 0;}
こうなっています。
ネガティブ・マージン、使えますね。
特に hr要素を左右にはみ出させるあたり、親要素の padding はそのままでイケルので便利ですね。
次回予告
次回もまだ margin の話が続きます。
marginには、marginの相殺(margin collapsing)と呼ばれる独特のルールがあります。これがまた、ややっこしいんだなあ。
次回は marginの相殺をじっくり見てみましょう。
- 関連記事
-
- 【15-2】background関連のプロパティ(2/4 background-position)
- 【15-1】background関連のプロパティ(1/4)
- 【14】borderとよく似た outlineはレイアウトを崩さない
- 【13-2】border-imageと border-imageのショートハンド
- 【13-1】borderと borderのショートハンド
- 【12】paddingと paddingのショートハンド
- 【11-4】marginの相殺(margin collapsing)
- 【11-3】はみ出て便利♪ ネガティブ・マージン(Negative Margin)
- 【11-2】marginの auto という値の「?」を解決しておこう
- 【11-1】marginと marginのショートハンド
- 【10】ボックスモデル(margin, padding, border を使いこなそう)
- 【9】HTML要素の インラインレベル・ブロックレベル について
- 【8】CSSの「色」と「透明度」の指定
- 【7-2】CSS3の新しい単位 vw, vh, vmin, vimax について
- 【7-1】CSSのサイズの単位について(em, %, px, rem の使い分け)
初心者にも使いやすい(と思う)レンタルサーバー
「初心者ですがレンタルサーバーはどこがいい?」というご質問をよくいただきます。
自由にファイルをアップロードできる自分のサーバがあると便利ですよね。ローカル環境じゃなくサーバ上で試してみたい時がありますからね。
私が使っているのは、
スターサーバーや ロリポップ!
です。どちらも管理画面がわかりやすく、マニュアルも充実していて、料金も安い。どちらもライトプラン以上で WordPress が使えます。
初心者が始めやすいサーバだと思います。
ちょっと料金は高いけど、さくらのレンタルサーバや、エックスサーバー
は、やはり老舗なのでおすすめです。
両方とも高スペックでコスパが良く、老舗でユーザーが多いので、質問する場がたくさんあります。初心者だけど仕事でサーバが欲しい場合は、安心なのではないかと思います。
スポンサーリンク