CSS float不会使外部块元素的大小正确

时间:2009-07-23 05:53:36

标签: html css

我有以下HTML代码:

<ul class="blogEntry">
    <li class="title section">
        <span><asp:Literal ID="litTitle" runat="server" /></span>
        <span class="date"><asp:Literal ID="litDate" runat="server" Text="10/1/1000" /></span>
    </li>
    <li class="body section"><asp:Literal ID="litBody" runat="server" /></li>
    <li class="tags section">
        <ul class="tags">
            <li class="tag">Tag 1</li>
            <li class="tag">Tag 2</li>
            <li class="tag">Tag 3</li>
        </ul>
    </li>
</ul>

以下CSS代码:

ul.blogEntry
{
    border: 1px solid black;
    border-bottom: 0px;
    padding: 0px;
}
ul.blogEntry li.section, ul.blogEntry li.lastsection
{
    list-style: none;
}
ul.blogEntry li.title
{
    background-color: #67A7FF;
    font-size: 14px;
    font-weight: bold;
}
ul.blogEntry li.title span
{
    display: inline;
}
ul.blogEntry li.title.section span.date
{
    float: right;
}
ul.blogEntry li.section
{
    padding: 4px;
    border-bottom: 1px solid black;
}

按原样,日期将下降到新行并向右浮动。如果我更改ul.blogEntry li.title span CSS并添加float:left;外部LI元素的高度收缩,底部边框直接穿过跨度文本。建议?

2 个答案:

答案 0 :(得分:7)

请不要添加任何元素进行清算。仅启用特定样式的元素会显着破坏语义和关注点分离。

简单的答案是将overflow:auto;添加到容器元素(即li.title),但还有其他方法:

清算区块是EVIL。

答案 1 :(得分:0)

尝试:

.section {min-height: 10px;}

应该清除ie7和8中所有节类的浮点数。你可以尝试将元素浮动到你的约会日期之上,看看是否有效。

另外,浮动时,通常应设置宽度