0

通常、私divはフロートをクリアするためにを使用します

<div style="clear:both"></div>

コンパス/ブループリントには、

+clearfix

それは正確に何をしますか?上にあるフロートをクリアする代わりに、現在のフローティング要素をクリアしますか?つまり、現在の要素がを使用している場合、+clearfix後続の要素は明確にする必要がないということですか?実際clear、Firebugを使用したテストとして、現在の要素または次の要素については何も表示されません。正確には何をしますか?

4

2 に答える 2

3

私はv0.10.5を実行しており、ソースコードの部分的な/Library/Ruby/Gems/1.8/gems/compass-0.10.5/frameworks/compass/stylesheets/compass/utilities/general/_clearfix.scss読み取りは次のとおりです。

// This basic method is preferred for the usual case, when positioned
// content will not show outside the bounds of the container.
//
// Recommendations include using this in conjunction with a width.
// Credit: [quirksmode.org](http://www.quirksmode.org/blog/archives/2005/03/clearing_floats.html)
@mixin clearfix {
  overflow: hidden;
  @include has-layout;
}

これは SCSS 構文ですが、参照している SASS 構文にかなり直接的に類似しています。ミックスインは同じディレクトリのパーシャルにhas-layout含まれており、_hacks.scssIE に固有のもののようです。

于 2010-11-08T12:54:25.217 に答える
-1

私の推測では、それは次のようなことをします:

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

このコードは、フロートをクリアする element.clearfix の後に非表示のブロック要素を生成します。おそらく、IE 8 未満で動作させるには、いくつかの追加のハックも必要です。Firebug では、生成されたコンテンツが表示されないため、何も表示されません。

于 2010-11-06T15:19:39.687 に答える