首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使悬停效果也影响下一个同级元素?

如何使悬停效果也影响下一个同级元素?
EN

Stack Overflow用户
提问于 2013-04-11 19:00:59
回答 4查看 1.7K关注 0票数 1

如何使用CSS和HTML实现这种悬停效果?:

正常视图:

代码语言:javascript
复制
---------
Link-1
---------
Link-2
---------
Link-3
---------

当我将鼠标悬停在Link-1上时,顶线和底线的颜色会发生变化,如下所示:

代码语言:javascript
复制
=========
Link-1
=========
Link-2
---------
Link-3
---------

如果我将鼠标悬停在Link-2上,这两行会发生变化:

代码语言:javascript
复制
---------
Link-1
=========
Link-2
=========
Link-3
---------

以此类推。

"====“只是表示颜色的变化,而不是双线

实际上我在这个问题上相当迷惑,但这是我到目前为止所得到的:

代码语言:javascript
复制
<div id="nav">

                <a href="#" class="dummy">Link-1</a>
                <a href="#" class="dummy">Link-2</a>
                <a href="#" class="dummy">Link-3</a>

</div>

和CSS:

代码语言:javascript
复制
#nav{
    width: 200px;
    height: 700px;
    background-color: red;
}
#nav a{
    display: block;
    width: 190px;
    text-decoration: none;
    padding-left: 10px;
    padding-top: 3px;
    margin-bottom: 5px;
    border-top: 1px solid #d5d5d5;
}
#nav a:hover  {
    color: white;
    font-weight: bold;
    border-top: 1px solid white;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-11 19:19:43

This is the best way I can think of doing it in pure CSS

HTML

代码语言:javascript
复制
<ul>
    <li>Link 1</li>
    <li>Link 2</li>
    <li>Link 3</li>
</ul>

CSS

代码语言:javascript
复制
li
{
    padding: 10px;
    border-color: #000;
    border-top: 1px solid;
}

li:last-child
{
    border-bottom: 1px solid;
}

li:hover
{
    border-color: #f00;
}

li:hover + li
{
    border-top-color: #f00;
}

基本上,可悬停元素列表中的每个元素都有一个border-top。最后一个元素同时获取border-topborder-bottom。当您将鼠标悬停在某个元素上时,您将更改其border-color以及紧随其后的元素的border-top-color

与其他方法相比,这种方法的好处是它不需要修改HTML就可以使边框按您希望的方式显示。缺点是IE8不支持:last-child

票数 5
EN

Stack Overflow用户

发布于 2013-04-11 19:05:12

这真的取决于您是如何创建这些行的。如果它们是DIVs的顶端边框(根据你的标题来猜测),你可以尝试这样的东西;

代码语言:javascript
复制
div:hover {
    border-color: blue;
}
div:hover + div { /* the div following the hovered div */
    border-color: blue;
}

http://jsfiddle.net/frw2n/上演示

票数 4
EN

Stack Overflow用户

发布于 2013-04-11 19:07:12

对于顶部和底部边框,您可以尝试将链接放在div中,并为所有这些div提供相同的类名和类样式,如下所示:

代码语言:javascript
复制
.classname:hover
{
    border-top:1px dotted blue;
    border-bottom:1px dotted blue;
} 

如果我没理解错的话。

希望这能对你有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15947050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档