2

我有一个用作菜单的列表。当我将鼠标悬停在它们上方时,我会在它们周围创建一个边框,但是当我这样做时,它们会向左移动一点!我怎样才能阻止他们这样做?

小提琴。

CSS:

header {
    background-color: #eee;
    height: 45px;
    box-shadow: 0px 2px 3px 1px #bbb;
}
#welcome_area {
    float: left;
    margin-left: 5%;
}
#menu {
    float: right;
    margin-right: 5%;
}
#menu nav ul li {
    display: inline;
    padding: 5px;
}
#menu nav ul li a {
    color: black;
    text-decoration: none;
    padding: 2px;
}
#menu nav ul li a:hover {
    border: 1px solid black;
    border-radius: 2px;
}
.userWidget {
    position: relative;
    display: inline-block;
    width: 300px;
    height: 50px;
    overflow: visible;
    z-index: 1;
}
.userWidget:hover {
    z-index: 2;
}
.user {
    position: absolute;
    width: 300px;
    height: 50px;
    margin-bottom: 5px;
    background: #fff;
    transition: width 0.3s, height 0.3s;
}
.user:hover {
    width: 350px;
    height: 200px;
    background: #eee;
    transition: width 0.3s ease 0.5s, height 0.3s ease 0.5s;
}
4

2 回答 2

7

为非悬停链接添加一个宽度为 1px 的不可见边框:

#menu nav ul li a {
    ...
    border: 1px solid transparent;
}

演示

于 2013-07-03T14:21:44.780 回答
0

使用更少的代码,就可以达到同样的效果。

用于outline实现您的需要:

#menu nav ul li a:hover {
    outline: 1px solid black;
    border-radius: 2px;
}
于 2013-07-03T14:23:45.957 回答