css - 为什么这不能正确对齐我的元素?

标签 css layout html

<html>
<head>
<link rel="stylesheet" href="../static/styles/base.css" type="text/css" />
</head>
<body>
    <div id= "top-nav">
        <h1>Sitename</h1>
        <ul>
            <li><a href="#">Feed</a></li>
            <li><a href="#">Profile</a></li>
            <li><a href="#">Settings</a></li>
        </ul>
    </div>
</body>
</html>

#

html,
body {
    height: 100%;
    width: 100%;
    padding: 0 0 0 0;
    margin: 0 0 0 0;
}

#top-nav{
background-color: Gray;
width: 100%;
height: 135px;
padding: 0 0 0 0;
margin: 0 0 0 0;
}


#top-nav h1{
    float: left;
    margin: inherit;
    padding-right: 700px;

}

#top-nav ul{
    float: left;
    bottom: 0;
}

#top-nav li{
    text-align: right;
    display: inline;
    padding-right: 5px;
}

我希望我的布局是,让 h1 垂直对齐在顶部导航 div 的中心,我希望 ul 位于顶部导航底部页面的右侧.为什么我会得到意想不到的结果?

最佳答案

#top-nav h1 中的 padding-right: 700px 规则将 ul 元素推离位置。

像这样的东西应该可以工作:

html,
body {
    height: 100%;
    width: 100%;
    padding: 0; /* You can just have one 0 instead of "0 0 0 0". */
    margin: 0;
}

#top-nav {
    background-color: Gray;
    width: 100%;
    height: 135px;
}

#top-nav h1 {
    float: left;
    line-height: 135px; /* Set to the height of #top-nav */
    margin: 0;
}

#top-nav ul {
    float: right;
}

#top-nav li {
    text-align: right;
    display: inline;
    padding-right: 5px;
}

关于css - 为什么这不能正确对齐我的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923369/

相关文章:

qt - 在布局上动态创建项目,在 QSpin Clicked 上 - 删除不会删除项目

visual-studio - 如何在 Visual Studio 2012 中保存打开的选项卡和选项卡组?

javascript - 更新地址字段时无需重新加载页面即可导航到新内容

php - 在 flush() 之后将 css 应用于 <img>; ob_flush();功能

javascript - YouTube 是如何打造流畅的视频播放器的?

javascript - 如何使用 Modernizr 检测框大小调整边框框支持

javascript - 下载前倒计时仅适用于第一个按钮

C 如何将 "draw"一个二叉树发送到控制台

javascript - 如何在添加新元素集之前删除先前创建的元素

javascript - 动态添加带有错误标记的 AJAX 内容