What does the following CSS do and is it valid?
h4 {
width: 83%;
#width: 75%;
}
Apparently there's a hash hack which looks exactly like the one you have, but I have no idea what specific browsers the author is trying to target or filter since there aren't any reliable results as to what browsers apply the rule and what don't (that looooooong list of user agent strings isn't what I'd call reliable; I'd call it inconsistent).
In any case, a hash is not a valid character for property names. I'm sure anyone that isn't IE will squarely discard it on sight.
From what I've read on http://developer.expressionz.in/blogs/2007/09/08/for-your-ies-only/ the hash-hack is intended to make a rule only visible to IE browsers. Since it is - as already mentioned by others - not a valid property, other browsers will ignore it.
To basically answer both your questions.
#
before the property targets IE7 & IE6 (and lower)I asked the same question, there's more info there that may be helpful to others:
Post: " CSS - "#" sign before property "
It is not valid. #width: 75%;
is a syntax error, since #
isn't used in CSS property names (although it is used in CSS selectors, to select elements with specific id
s). Most browsers will ignore it (hopefully) and only the first rule will be applied.
It might have been someone's attempt to write a CSS comment. This is the valid way: /*This is a comment*/
Edit
I would suggest using a CSS reset file to account for browser differences.
BTW if the second width was not preceded by #, it would take width = 75% and not 83%. The last value always overrides all the preceding ones. As others pointed out, it could be a hack, which I don't know but most likely a syntax error.
using #
before a property is applying different css style for ie 7. Is a css hack like *
. To make it valid you can use conditional comments for ie.