html - 悬停时带有背景颜色的背景图像

标签 html css

我想弄清楚如何让背景图像具有不同图像的悬停状态并且显示白色背景。

您可以更详细地了解我的意思here.

导航栏上 CAUL/CBUA 的标志是我要修复的。您可以看到,当您将鼠标悬停时,它会切换到图像并且也有白色背景但是背景的白色没有延伸到整个 block 。要了解我所说的完整 block 是什么意思,请将鼠标悬停在 Logo 旁边的链接上,注意它占据了完整 block 。

编辑:这是我编辑的 CSS(仅更改的部分)

#navi .logo {
margin: 0;
padding: 0;
float: left;
}

#navi .logo a {
float: left;
width: 56px;
height: 40px;
background: url(/imgs/navi/caul_white_nav.png) center no-repeat;
text-indent: -9999px;
}

#navi .logo a:hover {
background: url(/imgs/navi-hover/caul_blue_nav.png) center no-repeat;
background-color: white;
}

这是我的原始 CSS:

/* Navigation bar */
#navi {
height: 40px;
background: #1e416f;
font-size: 14px;
color: white;
text-transform: uppercase;
margin: 0 0 20px 0;
}

#navi a:hover {
background: white;
color: #1e416f;
}

#navi .logo {
margin: 5px;
padding: 0;
float: left;
}

#navi .logo a {
float: left;
margin: 2px 10px;
width: 36px;
height: 26px;
background: url(/imgs/navi/caul_white_nav.png) left top no-repeat;
text-indent: -9999px;
}

#navi .logo a:hover {
background: url(/imgs/navi-hover/caul_blue_nav.png) left top no-repeat;
background-color: white;
}

#primary-nav, #tools-nav {
list-style: none;
margin: 0;
padding: 0;
}

#primary-nav li, #primary-nav a, #tools-nav li, #tools-nav a {
float: left;
}

#primary-nav a, #tools-nav a {
color: white;
text-decoration: none;
padding: 0 10px;
border-right: 1px solid white;
line-height: 40px;
}

#tools-nav a:hover {
color: #1e416f;
}

#primary-nav li:first-child a, #tools-nav li:first-child a {
border-left: 1px solid white;
}

#tools-nav {
float: right;
}

#tools-nav .icon a {
text-indent: -9999px;
}

#tools-nav .email a {
background: url(/imgs/navi/mail.png) no-repeat;
width: 20px;
}

#tools-nav .email a:hover {
background: url(/imgs/navi-hover/hover_mail.png) no-repeat;
width: 20px;
}

#tools-nav .twitter a {
background: url(/imgs/navi/twitter.png) no-repeat;
width: 20px;
}

#tools-nav .twitter a:hover {
background: url(/imgs/navi-hover/hover-twitter.png) no-repeat;
width: 20px;
}

#tools-nav .search a {
background: url(/imgs/navi/search.png) no-repeat;
width: 20px;
}

#tools-nav .search a:hover {
background: url(/imgs/navi-hover/hover_search.png) no-repeat;
width: 20px;
}

相关的 HTML:

<!-- NAVIGATION -->
<div id="navi">
<h1 class="logo"><a href="#">CAUL/CBUA</a></h1>

<ul id="primary-nav">
    <li><a href="#">Directories</a></li>
    <li><a href="#">Committees</a></li>
    <li><a href="#">Resources</a></li>
    <li><a href="#">About</a></li>
</ul>

<ul id="tools-nav">
    <li class="login"><a href="#">Log In</a></li>
    <li class="email icon"><a href="#">Email</a></li>
    <li class="twitter icon"><a href="#">Twitter</a></li>
    <li class="search icon"><a href="#">Search</a></li>
</ul>
</div>

最佳答案

让你的<a>占据整个宽度和高度作为一个 block 。

Codepen 草图:http://cdpn.io/FjJsu

CSS

#navi .logo a {
  float: left;
  width: 56px;
  height: 40px;
  background: url(/imgs/navi/caul_white_nav.png) center no-repeat; /*Center your background*/
  text-indent: -9999px;
}

#navi .logo a:hover {
  background: url(/imgs/navi-hover/caul_blue_nav.png) center no-repeat;
  background-color: white;
}

关于html - 悬停时带有背景颜色的背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18471483/

相关文章:

html - 如何缩短输入字段的宽度 - Bootstrap v5 或 CSS

jquery 在表中显示所有 DIV,只想显示链接后的 div

jquery - 如何在引用或 block 引用标签上创建水平线

php - 避免php中http_build_query中HTML实体的转换

javascript - 如何将 div 元素定位到背景上的确切点

javascript - 如何禁用特定于电子邮件客户端(gmail、outlook)的电子邮件中的自动内容

Javascript if - else if 在开关内部使用 ("#id").length

javascript - 列出所有 h1, h2

javascript - postcss 插件是否应该将 postcss 引用为对等依赖项?

CSS-:target ~