菜单项内的文本不居中 - CSS

时间:2014-06-02 02:37:32

标签: css html-lists text-align

当它悬停时,菜单不会在空间内居中。

我尝试在#menu li中设置text-align:center但它不起作用。

此图片有助于了解正在发生的事情:

http://s2.postimg.org/r86nygkeh/CSS.png

<ul id="menu">

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

    </li><!-- End Home Item -->

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

</ul>

CSS

/* Navigation Bar */

#menu {
    list-style:none;
    width:882px;
    /* 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 0px 4px 0px;
    margin-top:7px;
    border:none;
    width:110.25px;
}

#menu li:hover {

    height:21px;
    margin-top:1px;

    padding: 11px 0px 11px 0px;
    /* 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;   
}

3 个答案:

答案 0 :(得分:1)

我认为你的填充权正在弄乱它

#menu li .drop {
    padding-right: 21px; //comment out this guy and try again
}

在chrome中,你可以右键单击导航,选择inspect元素,chrome会使元素,元素的填充和不同颜色的元素边距变暗,这样你就可以看到布局的原因

希望有所帮助!

答案 1 :(得分:0)

将您的#menu li a更改为

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

答案 2 :(得分:0)

这是因为实际文本(IE“4列”)包含在<a>标记中。从text-align:center;menu li移除menu li:hover,然后将这两条规则添加到menu li a

#menu li a {
    width:110.25px;
    text-align: center;
}

除了你已经拥有的规则之外,这两个规则。

以下是DEMO