使用css sprites的垂直导航菜单中的问题

时间:2010-06-06 15:46:56

标签: css css-sprites

我正在尝试使用CSS sprites创建一个垂直导航菜单。我想在其中添加一个悬停效果,其中菜单选项滑出一点。

a:link {
  background: url(images/nav.png);
  background-position: -100px 0px;
  width: 150px;
}

a:hover {
  background: url(images/nav.png);
  background-position: -100px 0px;
  width: 160px;
}

所以我对a:link和a:hover使用相同的精灵图像。我只是增加宽度,例如:悬停以创建弹出效果。

考虑这个比喻。如果我的标签都在x = 0处对齐,那么这就是我目前的情景。

a:link   tab start: x=-100   tab end: x=0  // this is how all links are arranged
a:hover  tab start: x=-110   tab end: x=0  // this is how I want them on hover
a:hover  tab start: x=-100   tab end: x=10 // this is how its panning out

这是我完整的css代码:

#navmenu {
    left: 100px;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 150px;
    width: 150px;
    z-index: 99;
}

#navmenu ul {
    list-style-type: none;
    margin: 0px;
    padding: 0px;
}

#navmenu ul li {
    line-height: 1.5em;
    padding: 0px;
}

#navimenu ul li a {
    color: black;
    display: block;
    font-weight: bold;
    height: 26px;
    padding: 0px 15px 0px 0px;
    text-align: right;
    width: 150px;
}

#navmenu a:link, #navmenu a:visited {
    background: url(images/nav.png) no-repeat;
    background-position: -150px 0px;
    width: 150px;
}

#navmenu a:hover {
    background: url(images/nav.png) no-repeat;
    background-position: -150px 0px;
    width: 160px;
}

有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:1)

好吧,如果你想向上或向下移动它,那么你应该改变y位置(即第二个),如果你想让它向左或向右滑动,你应该改变x位置: / p>

background-position: x y;

因此,如果我理解正确,您希望将背景图像保持在左侧,即使您将鼠标悬停在链接上也是如此:

#navmenu a:hover {
    background: url(images/nav.png) no-repeat -160px 0;
    width: 160px;
}

这是你想要的吗?

不过,你的问题有点含糊不清。你说的是图像的大小是“向右增加”(我不知道你的意思,但它与x轴有关),然后你开始谈论“基础”和“头部” (y轴)