对于支持 CSS3 规范的浏览器(在撰写本文时仅限 Safari),不再需要使用滑门技术来创建利用背景图像的水平扩展元素。 为单个元素分配多个背景图像的能力可以快速解决此问题。 分配一个定位到左侧的图像、一个重复的中间图像和一个定位到右侧的图像,如下所示
li.expanding {
background: url('left.jpg') top left no-repeat,
url('right.jpg') top right no-repeat,
url('middle.jpg') top center repeat-x;
height: 40px;
padding-top: 12px;
padding-left: 12px;
padding-right: 20px;
float: left;
}
图像按声明顺序排列,因此最顶层的图像将是您声明的第一个图像。 换句话说,将重复图像声明为最后。 然后,您可以使用如下所示的简单列表标记
<ul>
<li class="expanding">This</li>
<li class="expanding">Little Piggy</li>
<li class="expanding">Went To The Market</li>
</ul>
您将获得以下效果

非常流畅。
“对于支持 CSS3 规范的浏览器(在撰写本文时仅限 Safari)” - 这并不完全正确;CSS 3 规范包含许多模块,并且不同的浏览器支持不同的模块 - 以及模块的部分内容 - 尽管大多数模块根本不受支持。
此外,Konqueror 也支持多背景图像,并且希望 Opera 的下一个版本也能支持。
感谢你的澄清,Peter!
在本例中,我只是想明确 Safari 支持此特定功能,并且所有 FF 和 IE 访问者都不会对该示例感到困惑。
Konqueror 也支持多背景图像,这很酷……