皆さま引き続きコロナには気をつけてお過ごしください!

【HTML/CSS】要素を横並びにする方法!

プログラミング HTML/CSS


先日、プログラミング学習用のサイトを2つご紹介しました。

 

サイトを使って勉強をしていて、わからなかったのがfloatfloat

使い方が少しわかったので、残しておきたいと思います。

スポンサーリンク

floatとは

<div>タグや<p>タグは、もう1つ別のタグを書くと、必ず次の行に2つ目の要素が並びます。

<div>1行目</div>
<div>2行目</div>
表示結果
1行目
2行目

floatは、<div>タグや<p>タグなど、通常縦に並ぶ要素を、

横にしたいときに使います。

 

<div class="float">1行目</div>
<div class="float">2行目</div>
.float {
 float:left;
}
表示結果
1行目
2行目

 

left 指定した対象を左に寄せて、次の要素を右に回り込ませる。
right 指定した対象を右に寄せて、次の要素を左に回り込ませる。
none 初期値。配置の指定なし。
上記は、私がおちいっていた間違ったコードです。
文字だけで横並びにすると、正しいように見えてしまいますが、
実際は正しくありません。
スポンサーリンク

画像でfloatを使う(失敗例)

同じことを画像を使ってやってみます。

<div class="float"><img src="画像のパス" /></div>
<div class="float"><img src="画像のパス" /></div>
<div>さぁ、どうなるでしょうか。</div>
.float {
 float:left;
}
表示結果
さぁ、どうなるでしょうか。

 

にゃこ
失敗にゃ~

私が期待していたのは、画像だけが横に並び、

文字は縦になることですが、

文字も横になってしまいました。

 

そして、今回のケースではわからないですが、

同じ大きさの画像を使っていて、floatを使ったときに、

高さが若干違うという事象が起こりました。

 

スポンサーリンク

解決編

にゃこ
floatを指定していないのに、どうして?

まだまだHTML&CSS初心者の私には訳が分かりませんでしたが、

この本を読んで解決しました!

この本は、HTML・CSS・JavaScriptそれぞれの基本的な書き方の説明があり、

本に沿ってサンプルコードを書いて、結果どうなるかを見て把握はあくすることができるように書かれた本です。

 

この本で分かった、上記の原因は、

floatを使って、ブロックが横に並ぶようにしたけど、
その横並びの解除かいじょをしていなかった
こと。

これだけ…。

divで他のクラスを入れたりしてもダメで、

floatを使って横並びにした後は、clearを使って解除しないと駄目なことがわかりました。

 

ということで、解除してみます。

<div class="float"><img src="画像のパス" /></div>
<div class="floatend"><img src="画像のパス" /></div>
<div>さぁ、どうなるでしょうか。</div>
.float {
 float:left;
}

.floatend {
 clear:left;
}
表示結果
さぁ、どうなるでしょうか。

 

にゃこ
できたにゃ~~!

要素の左寄せをfloatを使って指定していたので、

左寄せのclearを指定することで、解除ができました。

 

スポンサーリンク

まとめ

きちんと理解してコードを書かないと、

想定と違う状況になったときに、

焦ったり、

できない方法を試みたりしてしまいます。

 

やはり基本の積み重ねは大事ですね。

タイトルとURLをコピーしました