CSS无法正确显示背景图片

css:
ul.menu{font-size:22px}ul.menu li{display:inline; list-style:none;}
ul.menu li.menu_left{background:#FFF url(../../image/menu_left.png) no-repeat; width:17px; height:40px;}
ul.menu li.menu_middle{background:#fff url(../../image/menu_middle.png) repeat-x; width:200px; height:40px;}
ul.menu li.menu_right{background:#fff url(../../image/menu_right.png) no-repeat; width:17px; height:40px;}

html:

  • 首页
  • 硬件DIY
  • 硬件DIY
  • 硬件DIY
  • 硬件DIY
  • 硬件DIY

图片可以显示,但是宽高无法按照设定的值显示,如果有文字,他会显示文字和部分背景,如果没有文字,他就全部不显示了,我用的是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">这个模式,发现将他删了就可以正常显示,但是这个是规定不能删的,请问我的CSS代码要怎么改?

[quote]我用table来实现,不过运行后发现每两个td之间都会出现一个白色条,请问要怎么去掉?[/quote]
[code="html"]

[/code]

把白色去掉试试:
[code="css"]
ul.menu{font-size:22px}ul.menu li{display:inline; list-style:none;}
ul.menu li.menu_left{background:url(../../image/menu_left.png) no-repeat; width:17px; height:40px;}
ul.menu li.menu_middle{background:url(../../image/menu_middle.png) repeat-x; width:200px; height:40px;}
ul.menu li.menu_right{background:url(../../image/menu_right.png) no-repeat; width:17px; height:40px;}
[/code]

用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 标准时, li的宽度是没有用的。

不用这个标准时,各浏览器按自己的来解释:IE 认为 li 也是有宽度的(这是IE自己的标准);firefox等是不认这个的。

想指定宽度,用div或table来实现吧,不要用li。