不太确定我在这里做错了什么。我发誓我过去曾经有过这个工作,但出于某种原因,当您将鼠标悬停在导航项上时,我无法显示背景图像。
我尝试添加宽度,但似乎不起作用。这只会让悬停变得疯狂。
这是当前的 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;
}
但这是您悬停时的当前结果:
如果我增加 anchor 元素的宽度并将其更改为 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;
}
结果:
不太确定我是否遗漏了什么。
我创建了一支笔来帮助说明我正在尝试做的事情:
最佳答案
我认为问题在于背景的位置。
.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;
}
图像将出现在悬停时 anchor 标记的最左侧,并将放置在 2px 下方。然后,您可以在 anchor 的左侧添加一些填充,这样文本就不会覆盖图像(假设您想要这样做)。
.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;
}
关于html - 导航项上的背景图像位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822134/