html css垂直列表对齐顶部

Posted

技术标签:

【中文标题】html css垂直列表对齐顶部【英文标题】:html css Vertical list aligning top 【发布时间】:2014-08-28 05:41:59 【问题描述】:

我正在尝试创建一个有 4 列的容器,顶部有一个图像,下面有一些文本。

但它不对齐顶部,而是底部

这是 li 的样式

#carousel-navigation li 
    list-style: none;
    display: inline-block;
    width: 23%;
    background-color: blue;

这是小提琴:(底部的图像应该在顶部)

http://jsfiddle.net/G6Jnh/

我认为表格可能更容易,但它应该只用于显示数据而不是他们所说的布局......

【问题讨论】:

【参考方案1】:

您需要添加vertical-align 属性,如下所示:

#carousel-navigation li 
    list-style: none;
    display: inline-block;
    width: 23%;
    background-color: blue;
    vertical-align:top; /* add this */

Demo

【讨论】:

【参考方案2】:

我在您的 li 样式中添加了 float: left,它似乎有效。

【讨论】:

【参考方案3】:

ul 显示为表格,将li 显示为表格单元格,然后根据需要使用vertical-align 对齐

#carousel-navigation ul 
    display: table;


#carousel-navigation li 
    display: table-cell;
    vertical-align: top;

Updated Demo

【讨论】:

这很有趣,这样做和使用表格有什么区别?它很实用,但这是一个好习惯吗?如果你删除它,显示内联块也会覆盖表格单元格,你不需要垂直对齐,但必须从 ul 中删除填充 重要的是元素的性质(html 代码的语义)。 CSS 只会以不同于默认值的方式显示它们;这只是风格而不是它们的内在本质。所以是的,这不是不好的做法,而且很有用(正如你所说,使用 HTML 表格进行布局是不好的做法,当然你必须将它们用于数据) table-layout: fixed 对于display: table 可能有用也可能没用。它在浏览器中触发完全不同的算法(适应内容 vs 适应作者想要的)

以上是关于html css垂直列表对齐顶部的主要内容,如果未能解决你的问题,请参考以下文章

CSS:有没有办法在每个列表元素之前垂直对齐数字/项目符号?

CSS:有没有办法在每个列表元素之前垂直对齐数字/项目符号?

HTML5/CSS 根据其他列相互高度对齐列表项

css实现垂直顶部与底部对齐上下两端对齐heightdisplayflexwrapaligncontentspacebetweennowrapreverse

css实现垂直顶部与底部对齐上下两端对齐heightdisplayflexwrapaligncontentspacebetweennowrapreverse

为啥是垂直对齐:文本顶部;不能在 CSS 中工作