CSS display: inline-block does not accept margin-top?

Gregory Bolkenstijn picture Gregory Bolkenstijn · Sep 30, 2011 · Viewed 62.3k times · Source

I have an element with display: inline-block, but it doesn't seem to accept margin-top. Is this because the element is still treated as an inline element?

If yes, does anyone have a workaround?


EDIT #1:

My CSS is quite simple:

.label {
  background: #ffffff;
  display: inline-block;
  margin-top: -2px;
  padding: 7px 7px 5px;
}

I ended up wrapping the content in another div and giving that a margin-top. But that causes a lot of extra markup and makes my code less clear.

EDIT #2:

margin-top & margin-bottom on inline-block elements only seems to work with positive values.

Answer

Einacio picture Einacio · Sep 30, 2011

you can also try replacing the negative margin with

.label{
    position:relative;
    top:-2px;
}

in addition to the rest of your .label style