html - 导航项上的背景图像位置

标签 html css hover background-image

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

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

这是当前的 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;
}

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

enter image description here

如果我增加 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;
}

结果:

enter image description here

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

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

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

最佳答案

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

.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/

相关文章:

javascript - 图像上的工具提示

javascript - 导入的文件未定义

css - 如何在 css3 中将填充/边距顶部设置为页脚

internet-explorer - IE 问题 : Transparent div above a picture doesn't trigger the CSS:hover

javascript - jQuery 可以点击调用悬停函数吗?

javascript - Bootstrap Accordion 表内带有链接的按钮

html - 使轮播以页面为中心?

css - 更改primeng PanelMenu 样式

javascript - 如何在React中使用下载的字体?

html - 为什么通用兄弟组合器并不总是有效?