html - 图像悬停不起作用..在纯CSS上

标签 html css

<div id="headermenu">
    <ul >
        <li id="menu1"><a href="#"><img src="images/menu1.png"/></a></li>
        <li id="menu2"><a href="#"><img src="images/menu2.png"/></a>
            <ul class="submenu2">
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
                <li><a href="#">submenu2</a></li>
            </ul>
        </li>           
        <li id="menu3"><a href="#"><img src="images/menu3.png" /></a></li>
        <li id="menu4"><a href="#"><img src="images/menu4.png"/></a></li>
        <li id="menu5"><a href="#"><img src="images/menu5.png"/></a></li>
    </ul>   
</div>

CSS

#headermenu ul ul {
    display: none;
}
#headermenu ul{
    padding:0; 
    margin:0; 
    white-space:nowrap;
}
#headermenu ul li{
    width: 20%; 
    list-style-type:none; 
    display:inline-block;
    margin-bottom:15px;
    float:left;
    left:0;
}
#menu1:hover{
    background: url('images/menu1hover.png');
}

悬停不起作用,我想知道如何制作带有图像悬停的列表,我还想知道如何在 li 悬停时制作子列表。如果子列表上有另一个列表如何制作它..在纯 css 上..

最佳答案

由于您没有向我们提供解决此问题所需的所有信息,我将进行猜测。正如我在评论中所说。这可能是由 <img> 引起的坐在背景上,所以当你悬停时你根本看不到背景。

HTML:

<div id="headermenu">
    <ul>
        <li id="menu1"><a href="#"><img src="http://img.gawkerassets.com/img/19euo1gaaiau9jpg/original.jpg"/></a>
        </li>
    </ul>
</div>

CSS:

#headermenu ul ul {
    display: none;
}
#headermenu ul {
    padding:0;
    margin:0;
    white-space:nowrap;
}
#headermenu ul li {
    width: 20%;
    height: 50px;
    list-style-type:none;
    display:inline-block;
    margin-bottom:15px;
    float:left;
    overflow: hidden;
    border: 1px solid;
}
#menu1:hover {
    background: url('http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg');
}

这是您的代码,背景图像正在更改但由于 <img> 而无法看到在前面。

DEMO HERE


现在这里是相同的代码,但 <img>被移除。

<div id="headermenu">
    <ul>
        <li id="menu1"><a href="#"></a>
        </li>
    </ul>
</div>

DEMO HERE

我们可以看到悬停确实有效,但 <img>正在掩盖它。


解决方案:

只需为每个 li 设置背景即可然后是悬停时的背景。

CSS:

#menu1 {
    background: url('http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg');
}
#menu1:hover {
    background: url('http://img.gawkerassets.com/img/19euo1gaaiau9jpg/original.jpg');
}

DEMO HERE

您还可以将 img 的显示设置为无悬停时。

CSS:

#menu1 {
    background: url('http://icdn4.digitaltrends.com/image/microsoft_xp_bliss_desktop_image-650x0.jpg');
}
#menu1:hover img {
    display: none;
}

DEMO HERE

还有很多方法,但只有这两种可行。

关于html - 图像悬停不起作用..在纯CSS上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24860349/

相关文章:

html - 通过CSS,如何使元素向下移动时页面高度不变

javascript - 可拖动的 div 在拖动时留下一条线迹,可能吗?

jquery - 从第 5 个子元素开始填充 + CSS

html - 改变一行内一段文字的颜色

html - 将文本放在图像上,无论它是否存在

html - 如何让 div 在悬停时消失,另一个出现?

html - Sprite 与图像切片

jquery背景变化

html - 如何让两个兄弟元素同时转换?

javascript - 本地主机上的 HTML5 Javascript/jQuery 视频 MEDIA_ERR_NETWORK