我正在使用Wordpress模板。我正在尝试实现3个背景图像,用于导航菜单中的每个<li>
,这是动态生成的。看看这两个例子。
http://preahkumpii.com/misc/test01/hi.html
http://preahkumpii.com/misc/test02/hi.html
第一个示例CSS:
.menu-item li {
background-image: url(images/menu-left.png), url(images/menu-right.png), url(images/menu-center.png);
background-position: left, right, center;
background-repeat: no-repeat, no-repeat, no-repeat;
}
第二个例子CSS:
.menu-item li {
background-image: url(images/menu-left.png), url(images/menu-right.png), url(images/menu-center.png);
background-position: left, right, center;
background-repeat: no-repeat, no-repeat, repeat-x;
}
HTML:
<ul class="menu-item">
<li>ItemNumber1</li>
<li>ItemNumber2</li>
<li>ItemNumber3</li>
</ul>
我希望两个外部bg图像保持在没有重复的位置。但是,我希望中间的bg图像沿x轴重复,但只扩展到其他bg图像。正如您在第二个示例中所看到的,当中间图像被赋予repeat-x
时,它会扩展到整个<li>
。据我所知,我不能使用<div>
来实现这一点,因为菜单的文本是动态生成的。所以,我认为我必须只一个<ul>
而没有一堆<div>
。有什么帮助吗?
答案 0 :(得分:3)
嘿,您可以使用after-before
伪类来获得所需的结果。
请参阅 CSS 我是如何做到的: -
<强> CSS 强>
.menu-item li:after {
background: url("images/menu-center.png") repeat-x scroll 0 0 transparent;
bottom: 0;
content: " ";
left: 20px;
position: absolute;
right: 20px;
top: 0;
z-index: -1;
}
.menu-item li {
background-image: url("images/menu-left.png"), url("images/menu-right.png");
background-position: left center, right center;
background-repeat: no-repeat, no-repeat;
display: inline-block;
height: 56px;
line-height: 56px;
min-width: 60px;
padding: 0 20px;
position: relative;
text-align: center;
z-index: 1;
}
查看输出我是如何做到的