電子書籍の厳選無料作品が豊富!

◆html◆
<div class="footer">
<div class="footer-logo">Progate</div>
<ul>
<li>会社概要</li>
<li>採用</li>
<li>お問い合わせ</li>
</ul>
</div>

◆CSS◆
.footer {
height: 120px;
background-color: #2f5167;
color: #fff;
padding: 40px;
}
.footer-logo {
float: left;
font-size: 32px;
}

.footer li {
float: right;
}

footer-logoを左側に、liの3つを右側に縦に3つ並ぶようにしたいのですが、これだとliが右側に横並びになってしまします。なぜでしょうか。

A 回答 (3件)

htmlに記述されているliすべてにfloat:right;が適用されるからです。



liの次のliにも、その次のliにもすべてfloat:right;が効くんですよ。

ですからliが右寄せになって、次のliも右寄せにされて、さらに右寄せになる、ということが繰り返されるわけです。

liじゃなくて、その上のかたまりであるulをfloat指定することで、liのかたちはいつもと同じように見せてくれることになります。

ただお書きになっている方法でのレイアウトは今主流ではなく、display:flex;を使うほうが多いんじゃないかなと思います。

floatはすごく昔から利用されてきた、ある意味ハック的な方法なんですが、clearの入れ方で悩むケースが多いと思いますので、使わなくなっているんじゃないでしょうか。
    • good
    • 1

No1です。



>li要素ではできないのはなぜでしょうか。。。。
CSSには、質問者様のことを忖度するような仕組みがないからです。
    • good
    • 0

こんばんは



li要素ではなく、ul要素を floatすれば良いのでは?

.footer ul { float: right; }
    • good
    • 1
この回答へのお礼

出来ました!ありがとうございます。
li要素ではできないのはなぜでしょうか。。。。

お礼日時:2022/03/11 10:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!