2012-11-29 34 views
3

的底部:对齐文本考虑下面的标记列表元素

<ul> 
    <li><span>One</span></li> 
    <li><span>Two</span></li> 
    <li><span>Three</span></li> 
    <li><span>Four</span></li> 
    <li><span>Five</span></li> 
</ul> 

下面CSS:

body { 
font-family: Arial, sans-serif; 
font-size: 14px; 
} 

ul { 
list-style-type: none; 
padding: 0; 
margin: 0; 
} 

li { 
border-bottom: 1px solid red;  
float: left; 
margin-left: 10px; 
height: 70px; /* height of largest element */ 
} 

span { 
font-weight: bold; 
display: block; /* important, needs to be block */ 
} 

li:nth-child(2) { 
font-size: 2em; 
} 

li:nth-child(3) { 
font-size: 3em; 
} 

li:nth-child(4) { 
font-size: 4em; 
} 

li:nth-child(5) { 
font-size: 5em; 
} 

如果每个项目都包含不同大小的文字。

我想将每个<span>元素对齐到它的父亲<li>的底部,以确保底部边界也对齐。

Here is the jsfiddle这个不是工作。

需要支持IE8>向上。

注:项目必须浮动

回答

6

从里取出float:left和li元素上添加display:inline; vertical-align:bottom;

li { 
border-bottom: 1px solid red;  
display:inline; vertical-align:bottom; 
margin-left: 10px; 
height: 70px; /* height of largest element */ 
} 

DEMO

+0

项目必须浮动。 –

+0

项目现在对齐左侧,如果您看到演示 – Sowmya

+0

问题是列表项包含块元素,因此无法使用'display:inline'。我已经更新了原来的小提琴,使这个更清晰。 –

2

使用display:table

display:table-cell上跨度元素吨;

此外,由我最大的字体大小可以达到84px高。

LIVE DEMO

+0

1.文本不内联。 2. IE8支持'table-cell'吗? –

+0

“从Internet Explorer 8开始,表格显示样式允许元素与表格的可视布局紧密平行。” http://msdn.microsoft.com/en-us/library/ms530751%28v=VS.85%29.aspx – Danield