练习了些CSS代码,发现IE各种不兼容,打算用css hack调试IE 6 7 8。网上搜了些方法,虽然可行,但webstorm和VS2010各种提示报错让人不爽,试了几个小时,最终结论如下:
1、只有IE6 7认那些乱七八槽的符号,可随便用一个(% ^ &之类都行),但大家习惯用*或+,如*.background,这样只有IE6 7才认。但是webstorm会把语法检查把上下行一起标错,看起来不爽,VS干脆就报错不让ctrl E D格式化。
2、!important虽然可用,但要注意顺序,且这个语法用在自身功能上最好,尽量不要用在css hack上。
3、_加属性(如_background)只有IE6认,且webstorm、VS不报错(webstorm要在 Inspections -> CSS -> W3C CSS Validator 里面,勾选 Ignore vendor specific properties)
4、IE 7可用*+html,后加选择器,如*+html div{},这样webstorm和VS都不报错,如果用*html的话,webstorm会提示错,不爽。
5、属性值末尾9为仅兼容IE,这个可正常用。虽然webstorm报错提示,但不影响用,也不会影响上下行,仅本行提示,如果用*的话,会把上下行都提示错误,烦。
6、网上说 可用作IE 8 9,但下图可知有的opera也生效,所以尽量 9,反正都写了,不在乎多写个9,可正常用。
body { background: red; /*all*/ background: orange9; /*IE all*/ background: yellow 9; /* IE 8 9 */ _background: blue; /* IE 6*/ } * + html body { background: violet; }/* IE 7*/