Bojangles
Bojangles

Reputation: 101473

CSS works inline but not in stylesheet

I have this CSS:

width: 98px; height: 298px; border: 1px solid; margin: 30px 25px 0px 25px;

This works fine in a style="" inline style, but when I use it in the stylesheet the element disappears completely! This is some crazy behaviour right here...

Does anyone know of a fix/workaround for this problem?

UPDATE

If I remove the #advert code from the stylesheet completely and put the CSS inline, but leave the id="advert" where it is on the div, it still doesn't show up. HOWEVER, if I remove the id="advert bit, then the div displays fine... strange.

Upvotes: 5

Views: 16938

Answers (3)

Andrés Lescano
Andrés Lescano

Reputation: 1

I had same problem.

My inline css was style="padding-left:20px;" Which I wanted to replace with: class="padleft" My solution stylesheet was .padleft {padding-left:20px !important;}

This solved my problem.

Upvotes: 0

Bojangles
Bojangles

Reputation: 101473

It's been a long time since I asked this question, however I seem to remember this was caused by me using Adblock plus - it was blocking the <div> because it had an ID of advert - a very simple oversight.

I've always developed with ABP off ever since, and your should check that any plugins you may be using aren't blocking/modifying your HTML in ways you don't want.

Upvotes: 6

Nathan Anderson
Nathan Anderson

Reputation: 6878

Its likely you have a cascade in your stylesheet that is 'hiding' the element in question somehow, and your inline styles are overriding that, so the element is visible. However, when you move the rules into the stylesheet they no longer are overriding because the selector you are using is of lower precedence than the one that is 'hiding' the element.

You can use a tool like FireBug or the Web Developer toolbar for firefox to inspect and element and see all the CSS that is affecting something. I bet you'll see something extra there you don't expect!

Upvotes: 10

Related Questions