代码之家  ›  专栏  ›  技术社区  ›  Spencer Ruport

CSS浮动无法保持外部块元素的大小正确

  •  1
  • Spencer Ruport  · 技术社区  · 15 年前

    <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>
    

    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和添加浮点:左;外部LI元素的高度缩小,底部边框正好穿过跨度的文本。建议?

    2 回复  |  直到 15 年前
        1
  •  7
  •   annakata    15 年前

    请不要添加 任何 用于清除的元素。只支持特定样式的元素显著地破坏了语义和关注点的分离。

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

    清除障碍是邪恶的。

        2
  •  0
  •   Jason    15 年前

    尝试:

    .section {min-height: 10px;}
    

    这将清除ie7和IE8中所有分区类的浮动。您可以尝试将元素浮动到日期左上方,以查看是否有效。

    此外,当浮动某物时,通常应设置宽度