【问题标题】:How to not use <div class="clear"> in markup如何不在标记中使用 <div class="clear">
【发布时间】:2011-07-13 15:50:02
【问题描述】:

一直以来,我的代码都充满了&lt;div&gt;,这些&lt;div&gt; 用于清除/扩展 div 以使其看起来正确。每当它看起来不正确时,我添加一个&lt;div style="clear:both;"&gt; 并修复了 IE7 中的问题。

如何避免这样做?我搞砸了overflow:autooverflow:hidden,但我什么也没得到。

提前致谢

【问题讨论】:

标签: css xhtml


【解决方案1】:

一种常用方法是clearfix 类。不需要在浮动元素之后添加无关的&lt;div style="clear:both;"&gt; 元素(就像您一直在做的那样),您只需将此类添加到浮动元素本身,然后布局会自动清除。1

我最喜欢的是http://perishablepress.com/press/2009/12/06/new-clearfix-hack。它支持现代浏览器以及 IE6 和 IE7。

/* new clearfix */
.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
    }
* html .clearfix             { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */

示例(旧/坏):

<div class="floatingrightmenu">This floats right</div>
<div style="clear:both;"></div>
<p>This text is cleared below it.</p>

示例(clearfix 新增):

<div class="floatingrightmenu clearfix">This floats right</div>
<p>This text is cleared below it.</p>

1: 注意:自动清除意味着它最适合单个浮动元素。如果您希望多个元素彼此相邻浮动,请将它们全部放入一个也浮动的容器中,并将clearfix 应用于该容器。

【讨论】:

  • @Kristian - 我没有那样解释这个问题。我将其解释为他希望避免“代码充满&lt;div&gt;”,换句话说,必须将&lt;div style="clear:both;"&gt; 放在 浮动元素之后。这是解决这个问题的确切方法。
  • @Kristian Antonsen 不,他想用clear: both 避免空div。这个 clearfix 类应该被添加到包含浮动元素的容器中。如果完成,他会摆脱空的 div。
  • @Renesis, @DanielB 如果是这样,我相信(在大多数情况下)仍然有避免使用其中任何一种的方法。不过,仍在等待演示问题。
  • 在同样的情况下,这可能正是您所需要的。尽管此选项在创建响应式网站时提供的灵活性较低。明确:两者;很丑,但很管用。
【解决方案2】:

如果你弹出溢出:隐藏;在应该工作的浮动元素的容器上!不知道它是如何跨浏览器的。

【讨论】:

    【解决方案3】:

    Cascade Framework 中,我默认在块级元素上应用微清除修复。这使您可以避免使用像 &lt;div style="clear:both;"&gt;&lt;div class="clearfix"&gt; 这样的东西,但副作用非常小。如果你真的想要块级元素的传统行为,绝对定位应该可以解决问题。亲自查看Cascade Framework,了解它的实用性。

    【讨论】:

    • 当我导航到 Cascade Framework 时,我只看到几个段落。根本没有代码。
    • @DavidA.Gray :感谢您指出这一点。我不再拥有域名 cascade-framework.com 并且忘记更新这些链接以指向该项目的 github 演示。我刚刚用正确的 URL 更新了我的答案!
    猜你喜欢
    • 1970-01-01
    • 2014-02-09
    • 2014-02-09
    • 2010-11-30
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 2016-07-13
    相关资源
    最近更新 更多