floatの代わりとしてのインラインブロック

6か月前、Habrで記事の翻訳を行いました。 今回は少し異なる角度から見てみましょう。 サイトの開発時には、フロートを使用して、サイドバーなどのページにいくつかのブロックを配置することがよくあります。 しかし、本当に必要ですか?



フロートは常に便利なわけではありません。たとえば、画像でグリッドを組版するときです。 場合によっては、floatの動作を模倣するinline-blockを使用することが適切です。



インラインブロックとは何ですか?



通常のブロック要素構造:







インラインブロックは、表示プロパティに割り当てることができる値です。 この名前は、インライン要素とブロック要素の両方のいくつかの特性に由来しています。







インラインブロックとフロート:違い











デモを見る



いくつかの手法を使用して、ギャップに対処できます。 リスト内のスペースの削除:



<ul> <li> one</li><li> two</li><li> three</li> </ul>
      
      







負のマージン値を使用:



 nav a { display: inline-block; margin-right: -4px; }
      
      







終了LIタグのない奇妙な方法:



 <ul> <li>one <li>two <li>three </ul>
      
      







font-size値をゼロに設定する:



 nav { font-size: 0; } nav a { font-size: 16px; }
      
      







これらのメソッドの詳細については、 CSS-tricksの記事をご覧ください



使用するもの



インラインブロックとフロートの選択は、特定の設計で解決するタスクに基づいて行う必要があります。 最終的には、これらはすべてこれら2つのツールの違いに帰着します。







画像グリッド



このようなグリッドは、フォトギャラリーで使用されます。 この例は、インラインブロックとフロートの動作を示しています。 画像の高さが同じ場合、floatの使用は正当化されます。 高さが異なる場合、要素は曲がって表示できます。







インラインブロックは、ライン内の同じレベルにあるため、このような問題はありません。 したがって、インラインブロックはギャラリーのレイアウトにより適しています。







デモを見る



おわりに



ページレイアウトの多くの問題を解決するために、floatを使用することに慣れています。 ただし、インラインブロックを使用する方が簡単で便利な場合があります。 また、古き良きテーブルを使用する方が正しい場合もあります。



トピックに関する使用済み資料と役立つリンク:






All Articles