防止文本向左移动一点

时间:2013-07-03 14:17:59

标签: html css html5 css3

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

Fiddle.

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;
}

2 个答案:

答案 0 :(得分:7)

将1px宽度的不可见边框添加到非悬停链接:

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

DEMO

答案 1 :(得分:0)

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

使用outline来实现您的需求:

#menu nav ul li a:hover {
    outline: 1px solid black;
    border-radius: 2px;
}