html - 列表项垂直居中

标签 html css xhtml

我读过很多关于垂直居中的文章,但恐怕其中没有多少是直观的,因此无法将其应用于我的问题。基本上,我有一个主 div,其中有一个无序列表,其中包含图像和段落标签,并使用内联 block 显示。这方面的工作还是不错的。

问题或我想要实现的目标是将列表居中于屏幕中间。例如,如果我在列表中只有一项,那么它应该位于中间,然后随着列表中输入更多元素而向上移动。

<div id = "main">
    <ul>
        <li>
            <img src="test.jpg" alt="#" />
            <p>Lorem ipsum</p>          
        </li>
    </ul>
</div>

#main {
    margin: 60px auto;
    height: 400px;
} 
#main ul li {
    display: inline-block;
    vertical-align: top;
    margin: 0 13px 72px 22px;
    height: 100px;  
}

#main ul { 
    text-align: center;
}

最佳答案

不太确定您要做什么,但这是一个可能的解决方案。做到这一点的技巧是行高。

编辑:这应该可以......

http://jsfiddle.net/cxmsr/4/


#main
{
    margin-left: auto;
    margin-right: auto;
    position: relative;
    left: 0px;
    top: 0px;
    height: 400px;
    background-color: #999999;
    display: table;
}
#main UL
{
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}
#main LI
{
    display: inline-block;
    background-color: #CCC;
    margin: 2px 2px 6px;
    height: 100px;
}

您可以将#main 宽度更改为 100% 或任何您需要的值。

关于html - 列表项垂直居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5635784/

相关文章:

css - 如何使用CSS将某行中的div拉伸(stretch)到 "all left space"

javascript - jQuery - 将一个属性添加到另一个属性中?

css - 如何在 HTML 中制作跑道或自定义形状?

javascript - css js 菜单帮助

html - CSS 在两个元素之间添加换行符

css - @font-face 在使用 src : url(data:font) 时不通过 h​​ttps 加载

css - XHTML CSS 3 列布局

html - 是否有一个 css 选择器可以选择当前元素之外的元素?

javascript - 如何格式化 HTML &lt;textarea&gt; 中的文本?

css - 如何从 1 个 div 制作圆 Angular 可拉伸(stretch)内容框?查看示例图片