clear
      
      または
overflow
      
      プロパティだけでなく、フローを制御できます 。
display:inline-block
      
      または
display:table-cell
      
      を使用すると、前述の
overflow
      
      完全に置き換えることができ 、要素のサイズを指定したり、追加機能を提供したりするリスクがなくなります。
この記事には普遍的なソリューションは含まれていませんが、フロー制御のための追加ツールがあなたの目に開かれています。
ブロック要素のコンテキスト形式に関する段落の完全な翻訳は次のとおりです( css仕様から )。
フローティング、絶対配置、テーブルセル(table-cell
)またはテーブルヘッダー(table-caption
)、インラインブロック(inline-block
)、およびvisible
以外のoverflow
持つ要素としてvisible
(値がエリアに継承される場合はカウントしない)ビュー)書式設定の新しいコンテキストを設定します
フローティング要素と絶対配置要素を使用すると、すべてが明確になると思います。 「
overflow
      
      」もあります。 テーブルヘッダーを使用した実験では何も生じなかったことをすぐに付け加えます。
重複しないようにするため、新しいコードはどこでも使用され、元々次のスタイルコードが記述されていることを発表します。
 #sidebar{ width:30px; height:200px; background-color:#ddd; float:left; } #content{ background-color:#dcd; } #content .col{ float:left; height:50px; width:30px; text-align:center; background-color:#cdd; } #content2{ background-color:#ddc; }
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      およびマークアップ:
 <div id="sidebar"> side </div> <div id="content"> <div class="col"> col1 </div> <div class="col"> col2 </div> <div class="col"> col3 </div> </div> ff <div id="content2"> more content </div>
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      このコードは、ブラウザーで次のようにレンダリングされます。
 
        1. display:inline-block
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      それでは、
display:inline-block
      
      が可能な
display:inline-block
      
      見てみましょう。
 
      firefoxとieを修正し
display:inline
      
      (hasLayout
display:inline
      
      が
display:inline-block
      
      ように機能する場合)
 
      余分な水平方向のスペースである
vertical-align:bottom
      
      IEの
*vertical-align:0%
      
      を追加し、Operaのテキストを下げます(
vertical-align:text-bottom
      
      )。
 
      垂直方向のスペースは、
hasLayout
      
      1つの要素で結合され、別の要素で
float
      
      するときに表示されるIEのバグです。
overflow:hidden
      
      を使用しても、
display:inline-block
      
      とは関係なく、それがあなたにとって重要な場合でも
*margin-left:-3px
      
      私はあなたの肩に解決策を探して、今のところ
*margin-left:-3px
      
      を使用します
 
      残念ながら、すべてが見た目ほど良いわけではありません。 問題は 2番目のffにあり
-moz-inline-block
      
      。 ただし、この場合、
float
      
      プロパティを持つすべての列は正常に表示されます。
  display:table-cell
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      display:table-cell
      
      開始しましょう
display:table-cell
      
      
 
      すべてが素晴らしく、サファリは愚かです-
table
      
      書くだけです。つまり、
table-cell
      
      はまったくサポートしていません。それから、少なくともすべてのブラウザで表示するようにします。
何がありますか-
a)要素の幅はコンテンツによって決定されます
b)要素は他の要素をその水平レベルにさせない
display:inline-block
      
      とほぼ同じ
display:inline-block
      
      、単に行の折り返しを追加します。 IEでこれをすべて行い、既知の欠陥をすぐに修正します。
 
      この方法を使用します。 さらに、コンテナの後にテキストまたは文字列要素ではなくブロック要素がある場合、IEで改行する必要はありません。また、コンテナの幅がわかっている場合は、
1)コンテナのコンテンツではなく幅を定義するため、IEで
display-inline
      
      を使用する必要はありません。
2)
display-inline
      
      シミュレートしないため、IEで改行する必要はありません。
3)幅によって有効にされるため、hasLayoutを有効にするために個別のプロパティは必要ありません
  3. Float
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
     
      すでに書いたように、floatは新しい書式設定コンテキストも作成します。 役に立つかどうかはわかりませんが、知っておくべきです。 それで、これはどのように現れますか?
float:left
      
      .col
      
      float:left
      
      セットはそれらをストリームから引き出し、それらのコンテナには何も含まれていないように見え、実際、#contentは幅と高さに設定されない限り表示されません。 確認するために、
.col
      
      (およびそれ以降のすべての見掛け倒し)から背景を削除しましょう。
.col
      
      から
background-color
      
      を削除し
background-color
      
      
 
      そして、今度は何
overflow:hidden
      
      か見てみましょう
overflow:hidden
      
      がもたらす(つまり、
hasLayout
      
      含む)
 
      table
      
      (つまり、明らかな理由で省略)
 
      そして最後に
float:left
      
      (あなたができると
right
      
      )。
 
      ブラウザーはこれらの例と絶対配置のために個別のフォーマットコンテキストを作成するため、パフォーマンスを向上させるために、Javaスクリプトが操作する要素は、絶対配置されたコンテナーだけでなく、上記のいずれにも配置されると考えられます。
これらの手法を使用して、
clear
      
      および
overflow
      
      プロパティに固有の問題を解決し、ページを処理するブラウザーのパフォーマンスを向上させることができます。
私のサイトのCSSでのフロー制御に関する記事:フォーマットコンテキストの作成