.clearfix class vs:after

时间:2012-05-16 01:26:38

标签: css

将元素向右移动哪个更好?

使用通用.clearfix类:

.clearfix:after{
  content:".";
  display:block;
  clear:both;
  visibility:hidden;
  line-height:0;
  height:0;
}

您可以重复使用并将其应用于容器元素:

   <div class="some-section clearfix">
     <div class="align-left"> left </div>
     <div class="align-right"> right </div>
   </div>

   <div class="some-other-section clearfix">
     <div class="align-right"> right </div>
   </div>

或特定的清算规则,如:

.some-section:after, some-other-section:after{
  content:".";
  display:block;
  clear:both;
  visibility:hidden;
  line-height:0;
  height:0;
}

3 个答案:

答案 0 :(得分:1)

我个人更喜欢.clearfix,因为它拥有最多的浏览器支持 - IE6&amp; 7不支持:选择后。此外,您可以在一个位置定义清除属性,并在需要使用它们的任何位置添加该类。如果你继续使用:在每个元素的基础上,你将以大量重复的CSS结束。

答案 1 :(得分:1)

也不是,真的。 Internet Explorer 7及更早版本不支持伪元素,因此我使用的是:

.clearfix {
    clear: both;
}

<br class="clearfix" />

它几乎是语义的,甚至可以在IE 6中运行,并且非常好用且干净。

答案 2 :(得分:1)

使用:after时,必须考虑跨浏览器问题。如果我们要为所有浏览器提供支持,包括旧的浏览器,那么伪元素可能不是这样的:

CSS selectors and pseudo selectors browser compatibility


通用类 vs 特定类

相关

根据定义:

泛型类可以应用于标记中的任何元素,最适合与所有元素都支持的通用格式化指令一起使用,或者用于格式化需要在多种类型上使用的指令元素。

特定类仅通过应用于标记中的特定元素来实现其目的,最适合格式化仅针对一种元素类型的指令。

使用通用类而不是特定类的目标是:

  1. 清洁标记
  2. 再利用
  3. 较小的文件(浏览器内容下载性能)
  4. 易于维护或更新