为什么第五个li,不能与同一行的li标签对齐


例子:
http://jsfiddle.net/3abjkz1h/

6个li元素分2行显示,li元素宽度使用的百分比,当body宽度不足时,为什么字数多的li元素出现了窜行

css HTML

拉面拉面哟 9 years, 7 months ago

display:inline-block 好像是按行来排列的当你加了宽度限制之后一行不能就不能容纳太多字就变成了两行
,所以图片就向上一行字的距离,所以用float 来排列才是正确的

幻想郷D人儿 answered 9 years, 7 months ago

.investigation_list li 定了高度,可在 .investigation_list li 里面加一个 overflow:hidden;

你都定了宽度和高度,建议用 float:left

retaker answered 9 years, 7 months ago

你的li用了display:inline-block,应该用display:block; float:left;,ul下面再清浮动。

原理我不知道,但一般做这样的列表用float:left

宇宙巡航姬 answered 9 years, 7 months ago

inline元素的对齐方式是由 vertical-align 控制的。而默认值 vertical-align: baseline 则会有这样的结果:

图片描述

绿线为baseline。

解决方案:给 li 加上 vertical-align: top;

http://jsfiddle.net/3abjkz1h/6/


overflow:hidden 也能让它们对齐的原因,是因为它为每一个li创建了BFC(Block Formatting Context),从此隔绝了内部文本的baseline和外部的baseline(因为上下文完全变化了)。

像这样:

图片描述

关于BFC,可以读一下 这一篇 ;关于FC,可以读一下 W3Help的常规流介绍


float:left 从来都是顶对齐的。

zatff answered 9 years, 7 months ago

Your Answer