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

Spe*_*ort 1 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>
Run Code Online (Sandbox Code Playgroud)

以下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;
}
Run Code Online (Sandbox Code Playgroud)

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

ann*_*ata 7

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

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

清算块是EVIL.