-
ID:Tw2a0L さんの質問

cssのネガティブマージンって難しくないですか?検索してもネガティブマージンを詳しく解説してるページも少なく未だ理解が乏しいです。

どこかネガティブマージンの理解が深まる参考となるものがあれば教えて頂けないでしょうか?

オススメの学習方法でも構いません。

みんなの回答 9 件

ID:iiTHCd さんの回答

マイナス指定するだけなんだけど?

ID:JWzG98 さんの回答

逆かめはめ波みたいなもん

ID:.Z808o さんの回答

例えば、横400pxの画像を画面の左右中央に置きたい時、left:50%にすると画面中央になるが左基準なので、画像の左側面の位置が50%になり右に寄って見えてしまいます。
そこでネガティブマーチンを発動させるのです。
このネガティブマーチンは画像の横幅に対して、半分のサイズをマイナス(margin:-200px)させるとなんと言う事でしょう

ID:RSjphD

まぁ、それも今や古い手法ですが。。

ID:Tw2a0L

その方法は理解が出来ます。

ID:x7HsbB さんの回答

どこが難しいんだろか。
アホみたいに簡単だよ。マイナスつけりゃいいだけなんだし。

ID:RSjphD さんの回答

詳しく説明する必要がないからページが見つからないのだと思う。
ちなみに、どのあたりを難しいと思っているの?
ネガティブマージンだけに限ると、どのブラウザでも動作が保証されている安全なプロパティだし。比較的使いやすい部類だと思う。

ID:Tw2a0L

リキッドレイアウトをネガティブマージンでやる方法を詳しく解説してるページを読んだのですが、よくわかりませんでした。。。

floatがあるとややこしくなりますか?

ID:1Hr3/e さんの回答

行き過ぎたのを戻すだけなんだもの。

ID:Tw2a0L さんの回答

上方向にネガティブマージンをすると、その要素が上へ移動。左方向にネガティブマージンをすると、その要素が左へ移動。右方向にネガティブマージンをすると、その要素が右へ移動。下方向にネガティブマージンをすると後続の兄弟要素が上へ移動。

ここまではあってますよね?

ID:Tw2a0L さんの回答

ul
li
li
li
ul
とあったとして、liの左右に5pxパディングがあって、一番最初のliの左パディングと一番最後のliだけ右パディングを無くしたい場合はulのマージン左右に-5pxつけるんですよね?

これだと、左のマイナスマージンで右に5pxずれて、今度は右のマイナスマージンで左に5pxずれるから、結局元の位置に戻って変化がないように思われるのですが、どういう仕組みで左右のパディングが削られるのかわかりません。

ID:RSjphD

左のマイナスマージンでは、「左」に5px移動します。
右のマイナスマージンでは、floatなどで隣接する可能性のある次の要素が「左」に5px移動します。従って、見た目の結果としてはulの幅が10px減ったように見えるはずです。
ただし、実際的に幅に変化はありませんし、左右のpaddingが削られるわけではないですよ。あくまで、プラスのマージンの逆の現象が起きるだけです。

ID:Tw2a0L

ありがとうございます。コード書いて試して確認してみます!

右のネガティブマージンをした時に、その要素自体が右に移動した現象が昨日確認できてたのですが、普通は後続の(隣接した)要素が左方向に引っ張られるんですよね?

右にネガティブマージンを設定して、右に移動するのってどういう条件の時に起きるのでしょうか?

ID:RSjphD

どのブラウザで検証されているのか分からないし、マージンの前に、ボックスモデルを検索して調べてみてください。

ID:Tw2a0L

クロムの最新バージョンでやってます。ボックスモデルは理解してるつもりです。

ID:4KA9xH さんの回答

ネガティブマージンは旧ブラウザ対応してなかったりするからおまり使わないけど、インデント1em、レフトパディング-1em的なのはよく使います。

ID:oUecCP

逆じゃない?

ID:4KA9xH

逆かも…

ID:zDX1DP

むしろネガティブマージンは新旧ブラウザを通して、融通が効いたレイアウトを実現するために使うことが多いな。
floatのmargin削りなんかが良い例。

最終更新日:2014-08-20 (7,345 views)

関連するトピックス

ページ上部に戻る