0

不太确定我在这里做错了什么。我发誓我过去曾有过此功能,但由于某种原因,当您将鼠标悬停在导航项上时,我无法显示背景图像。

我尝试添加宽度,但这似乎不起作用。这只会使悬停变得疯狂。

这是当前的 CSS:

.nav ul li {
    display: inline-block;
    margin-left: 15px;
}

.nav ul li a {
    text-decoration: none;
    color: #760706;
    display: block;
    position: relative;
}

.nav ul li a:hover {
    background: url(imgs/ornament.png) -10px 2px no-repeat;
}

但这是悬停时的当前结果:

在此处输入图像描述

如果我增加锚元素的宽度并将其更改为inline-block它只会增加导航的宽度:

CSS:

.nav {
float: right;
font: 1.2rem "rosewoodfill", Georgia, "Times New Roman", Times, serif;
margin-top: 35px; 
}

.nav ul li {
display: inline-block;
margin-left: 15px; 
}

.nav ul li a {
  text-decoration: none;
  color: #760706;
  display: inline-block;
  position: relative;
  width: 150px;
}

  .nav ul li a:hover {
    background: url(imgs/ornament.png) -10px 2px no-repeat;
}

结果:

在此处输入图像描述

不太确定我是否遗漏了什么或什么。

我创建了一支笔来帮助说明我正在尝试做的事情:

http://codepen.io/ultraloveninja/pen/GfAUI

4

2 回答 2

1

我认为问题在于背景的位置。

.nav ul li a:hover {
   background: url(imgs/ornament.png) -10px 2px no-repeat;
}

-10px 表示背景位置在 x 轴上为 -10 像素,并且位于 y 轴上向下 2 像素。因此,如果您的图像是 10 像素宽,您将不会看到它被向左拉 10 像素时出现。如果您将代码设置为:

.nav ul li a:hover {
   background: url(imgs/ornament.png) 0 2px no-repeat;
}

悬停时,图像将出现在锚标记的最左侧,并将向下放置 2px。然后,您可以在锚点的左侧添加一些填充,以便文本不会覆盖图像(假设您想要这个)。

.nav ul li a {
   text-decoration: none;
   color: #760706;
   display: inline-block;
   padding-left: 15px;
   position: relative;
   width: 135px;
}

.nav ul li a:hover {
   background: url(imgs/ornament.png) 0 2px no-repeat;
 }
于 2013-11-06T22:53:52.133 回答
0

因为您使用的是 inline-block 元素,所以您不能让背景图像超出内容范围。但是,如果你使用伪选择器:before,你可以让它像这样工作:

.nav ul li a:before {
    content: "."; /*You have to have some sort of content for this to work.*/
    display: inline-block;
    width: 15px;
    color: #fff /*This should match your background color so that you can't see it*/
}

.nav ul li a:hover:before {
    background:url(img/url) 0 2px no-repeat;
}

这将为图像显示提供空间。然后,当您将鼠标悬停在该项目上时,它将显示出来。

您必须在之前拥有内容才能使其正常工作。一个周期很小。如果您随后将颜色设置为与它所在的背景颜色相同,那么您将无法看到它。

于 2013-11-06T22:48:38.120 回答