链接在悬停时向左移动 - CSS

时间:2014-06-01 23:10:19

标签: css hyperlink hover

当我将鼠标悬停在菜单内的链接上时,它们会向右移动一些像素。

下图显示了最新情况:

enter image description here

HTML:

<ul id="menu">

<li><a href="#" class="drop">4 columns</a><!-- Begin 4 columns Item -->

    <div class="dropdown_4columns"><!-- Begin 4 columns container -->

        <div class="col_4">
            <h3>This is a heading title</h3>
        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">ThemeForest</a></li>
                <li><a href="#">GraphicRiver</a></li>
                <li><a href="#">ActiveDen</a></li>
                <li><a href="#">VideoHive</a></li>
                <li><a href="#">3DOcean</a></li>
            </ul>   

        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">NetTuts</a></li>
                <li><a href="#">VectorTuts</a></li>
                <li><a href="#">PsdTuts</a></li>
                <li><a href="#">PhotoTuts</a></li>
                <li><a href="#">ActiveTuts</a></li>
            </ul>   

        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">FreelanceSwitch</a></li>
                <li><a href="#">Creattica</a></li>
                <li><a href="#">WorkAwesome</a></li>
                <li><a href="#">Mac Apps</a></li>
                <li><a href="#">Web Apps</a></li>
            </ul>   

        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">Design</a></li>
                <li><a href="#">Logo</a></li>
                <li><a href="#">Flash</a></li>
                <li><a href="#">Illustration</a></li>
                <li><a href="#">More...</a></li>
            </ul>   

        </div>

        <div class="col_4">
            <h2>This is a heading title</h2>
        </div>
        <div class="col_1">
            <ul>
                <li><a href="#">ThemeForest</a></li>
                <li><a href="#">GraphicRiver</a></li>
                <li><a href="#">ActiveDen</a></li>
                <li><a href="#">VideoHive</a></li>
                <li><a href="#">3DOcean</a></li>
            </ul>   

        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">NetTuts</a></li>
                <li><a href="#">VectorTuts</a></li>
                <li><a href="#">PsdTuts</a></li>
                <li><a href="#">PhotoTuts</a></li>
                <li><a href="#">ActiveTuts</a></li>
            </ul>   

        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">FreelanceSwitch</a></li>
                <li><a href="#">Creattica</a></li>
                <li><a href="#">WorkAwesome</a></li>
                <li><a href="#">Mac Apps</a></li>
                <li><a href="#">Web Apps</a></li>
            </ul>   

        </div>

        <div class="col_1">
            <ul>
                <li><a href="#">Design</a></li>
                <li><a href="#">Logo</a></li>
                <li><a href="#">Flash</a></li>
                <li><a href="#">Illustration</a></li>
                <li><a href="#">More...</a></li>
            </ul>   

        </div> 


    </div><!-- End 4 columns container -->

</li><!-- End 4 columns Item -->

CSS:

/* Navigation Bar */

#menu {
    list-style:none;
    width:940px;
    /* width:100%; */
    margin:30px auto 0px auto;
    height:43px;
    padding:0px 20px 0px 20px;

    /* Rounded Corners */

    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    border-radius: 10px;

    /* Background color and gradients */

    background: #c92424;
    background: -moz-linear-gradient(top, #dd4343, #9e1c1c);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#dd4343), to(#9e1c1c));

    /* Borders 

    border: 1px solid #002232;

    -moz-box-shadow:inset 0px 0px 1px #edf9ff;
    -webkit-box-shadow:inset 0px 0px 1px #edf9ff;
    box-shadow:inset 0px 0px 1px #edf9ff; */
}

#menu li {
    float:left;
    text-align:center;
    position:relative;
    padding: 4px 10px 4px 10px;
    margin-right:20px;
    margin-top:7px;
    border:none;
}

#menu li:hover {

    height:21px;
    margin-top:1px;
    text-align:center;
    padding: 11px 9px 11px 9px;
    /* Background color and gradients */

    background: white;
    /* background: -moz-linear-gradient(top, #e56e6e, #e56e6e);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#e56e6e), to(#e56e6e)); */


}

#menu li a {
    font-family:Arial, Verdana, sans-serif;
    font-weight: bold;
    font-size:14px; 
    line-height:21px;
    color: #EEEEEE;
    display:block;
    outline:0;
    text-decoration:none;
    text-shadow: 1px 1px 1px #000;
}

#menu li:hover a {
    color:#161616;
    text-shadow: 1px 1px 1px #FFFFFF;

}
#menu li .drop {
    padding-right:21px;
}

/* Drop Down */

.dropdown_2columns, 
.dropdown_4columns  {
    margin:11px auto;
    float:left;
    position:absolute;
    left:-999em; /* Hides the drop down */
    text-align:left;
    padding:10px 5px 10px 5px;
    border:1px solid #c92424;
    border-top:none;

    /* Gradient background 
    background:#F4F4F4;
    background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));

    /* Rounded Corners */
    -moz-border-radius: 0px 5px 5px 5px;
    -webkit-border-radius: 0px 5px 5px 5px;
    border-radius: 0px 5px 5px 5px;
}

.dropdown_2columns {width: 280px;}
.dropdown_4columns {width: 560px;}


#menu li:hover .dropdown_2columns, 
#menu li:hover .dropdown_4columns{
    left:-1px;
    top:auto;
}

/* Columns */

.col_1,
.col_2,
.col_4{
    display:inline;
    float: left;
    position: relative;
    margin-left: 5px;
    margin-right: 5px;
}
.col_1 {width:130px;}
.col_2 {width:270px;}
.col_4 {width:550px;}

/* Drop Down Content Stylings */

#menu p, #menu h2, #menu h3, #menu ul li {
    font-family:Arial, Verdana, sans-serif;
    font-weight: bold;
    line-height:21px;
    font-size:12px;
    text-align:left;
    text-shadow: 1px 1px 1px #FFFFFF;
}
#menu h2 {
    font-size:21px;
    font-weight:400;
    letter-spacing:-1px;
    margin:7px 0 14px 0;
    padding-bottom:14px;
    border-bottom:1px solid #666666;
}
#menu h3 {
    font-size:14px;
    margin:7px 0 14px 0;
    padding-bottom:7px;
    border-bottom:1px solid #888888;
}
#menu p {
    line-height:18px;
    margin:0 0 10px 0;
}

#menu li:hover div a {
    font-size:12px;
    color:#015b86;
}
#menu li:hover div a:hover {
    color:#029feb;
}

#menu li ul {
    list-style:none;
    padding:0;
    margin:0 0 12px 0;
}
#menu li ul li {
    font-size:12px;
    line-height:24px;
    position:relative;
    text-shadow: 1px 1px 1px #ffffff;
    padding:0;
    margin:0;
    float:none;
    text-align:left;
    width:130px;
}
#menu li ul li:hover {
    background:none;
    border:none;
    padding:0;
    margin:0;   
}

我试图在#menu li ul li:hover处获得填充和边距而没有任何成功。有没有人知道发生了什么?

2 个答案:

答案 0 :(得分:1)

您必须从text-align:center;删除#menu li:hover

这是jsfiddle

答案 1 :(得分:0)

text-align:center中您的问题是#menu li:hover。快速解决方法是将其更改为子选择器而不是后代选择器:

#menu>li:hover 

Demo