It is because it is not a vaild property for display. It could be inline or block for example.
See:
"... 9.2.5 The 'display' property
'display'
Value: inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit
Initial: inline
Applies to: all elements
Inherited: no
Percentages: N/A
Media: all ..."
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-display
Also If you are going to do different stuff for Internet Explorer then perhaps you should do different style sheets for them so as not to get upset when IE 7 comes along. IE7 will ignore some but not all hacks like some of these.
You can import specific stylesheets for IE into your page manually by putting something like this in your template. It is version dependant and has many options.
Code: Select all
<!--[if !IE 5.0]>
<link rel="stylesheet" type="text/css" media="screen" href="ie5only.css" />
<![endif]-->
See the bottom of this page for the various options:
http://www.positioniseverything.net/art ... ltiIE.html
Hope this helps. You should also note that not all hacks will validate as CSS - it is up to you how you get around this, although the above suggestion, by feeding different stylesheets to the various version of IE is probably the best

You might also like to have a look at the CSS-Discuss list for CSS related stuff:
http://css-discuss.incutio.com/ and perhaps join the mailing list ; )
Russ