CSS浮动问题 位置偏移了?

css代码如下:

.nav{
    width: 1000px;
    height: 40px;
    background: url("../images/nav_bg.jpg") repeat-x;
    margin: 0 auto;
}


.nav .nav_left{
    float: left;
}

.nav_left li{
    list-style-type: none;
    float: left;
    width: 100px;
    line-height: 40px;
    text-align: center;
}

.nav_left a{
    text-decoration: none;
    color: white;
    font-size: 16px;
    font-family: 微软雅黑;
}

.nav .nav_right{
    float: right;
}

html代码如下:

<div class="nav">
            <div class="nav_left">
                    <ul>
                        <li><a href="#">首页</a></li>
                        <li><a href="#">关于慕课</a></li>
                        <li><a href="#">新闻动态</a></li>
                        <li><a href="#">课程中心</a></li>
                        <li><a href="#">在线课程</a></li>
                        <li><a href="#">人才招聘</a></li>
                    </ul>
                </div>
            <div class="nav_right">
                    <input type="text">
                </div>
        </div>    

效果:
图片描述

li的flot设置成了left
效果不应该是靠左么 为什么会出现在灰色条的中间呢?
求解

阅读 6.2k
3 个回答

图片描述

检查这个logo区域的高度是否异常,有可能就相差几个像素,导致logo超出了上面白色的header区域,
底下的nav >li float left的时候位置不够就靠右了。

右键,审查下就好...
猜测是ul的默认样式带padding的问题

因为你的.nav样式中设置的margin是 margin: 0 auto; 导致容器自动调整左右距离,默认两边距离一直,内容区居中显示。还有一个地方需要注意,就是浏览器的对ul/li的默认样式,如chrome:
图片描述

效果图,.nav 容器已经将子节点居中了:
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题