web制作のしおり

日々の学習をアウトプットします。

11.「float」は浮かせて寄せる ~平面なのに立体的~

floatって?

要素を横並びにしたい時に、使うCSSプロパティの1つです。

・・・

そっとページを閉じようとしている、そこのあなた!

大丈夫です。

噛み砕いて、書きますので見ていきましょう。

 

要素を横並びに?最初からなるんじゃないの?

要素のある性質によって、横並びになるもの、ならないものがあります。

それは以前の記事で書いた「ブロックレベル」と「インライン」のお話です。

5.昔話と侮るなかれ ~HTMLの要素には「かたさ」が存在した!?~ - web制作のしおり

参考までに。

 

今回のfloatに大きく関わってくるのが、ブロックレベルの性質です。

 

ブロックレベルの性質って?

「他の要素と縦に並ぶ」という性質があります。

その為、ブロックレベル要素はデフォルトで縦に配置されるのです。

つまり、冒頭申し上げた「要素を横並びにしたい」場合は別途設定が必要なのです。

 

じゃあ、どうすれば横並びになるの?

そこで登場するのが「float」です。(※横並びにする方法は他にもあります)

floatはCSSのプロパティの1つで、次のような特徴があります

  • 要素が浮く
  • 左か右を指定して要素を寄せる
  • 要素をブロックレベルにする

3つ目はあまり知られてないと思います。

 

1つずつ見ていきましょう。

 

要素が浮く?

通常、デザインは平面に要素を配置していきます。

floatを適用すると、文字通り「要素が浮いたような状態」になります。

※目視で浮いているのはわかりません

浮いたら何が起こるのか?

通常、要素が要素の下に入り込んで重なるようなことはありません。

それが、要素が浮いてしまうので、下に入り込むような動きをするのです。

これはfloat解除の設定をするまで、維持されます。

この動きは意図しないデザイン崩れを起こすので、対応が必要です。

 

右か左を指定して要素を寄せる

float : leftを設定とすると、浮いた要素が左によります。

さらに別の要素にもfloat : leftを設定すると、

最初に浮いて、左に寄った要素の隣に配置されます。

 

要素をブロックレベルにする

インラインの要素にfloatを設定すると、自動でブロックレベルになる。

これは検証してみました。

インライン要素である<a></a>に対して、floatを設定したところ、

heightが反映されるようになりました。

※インラインheightとwidthが設定できない。参考↓

5.昔話と侮るなかれ ~HTMLの要素には「かたさ」が存在した!?~ - web制作のしおり

 

今日のまとめ

  • floatは文字通り要素が浮くイメージ
  • 要素を左右に並べたい時に使う
  • floatを設定すると自動でブロックレベルになる。

 

今後、floatとセットでclearを使うについても整理してまとめたいと思います。

 

ではまた。