teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

なんかバグった

2020/06/10 07:21

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37481

answer CHANGED
@@ -26,6 +26,7 @@
26
26
  - display: flow-root
27
27
  - ...
28
28
  >
29
+ >
29
30
  [ブロック整形コンテキスト - 開発者ガイド | MDN](https://developer.mozilla.org/ja/docs/Web/Guide/CSS/Block_formatting_context)
30
31
 
31
32
  ここでは、`display: flow-root`を使っています。

1

追記

2020/06/10 07:21

投稿

Lhankor_Mhy
Lhankor_Mhy

スコア37481

answer CHANGED
@@ -13,4 +13,20 @@
13
13
  /* position: absolute; */
14
14
  display: flow-root; /* 追加 */
15
15
  }
16
- ```
16
+ ```
17
+
18
+ `position: absolute`を消すだけだと、内部の要素がフロートしているため、高さを失って潰れますので、適切にブロック整形コンテキストを生成する必要があります。
19
+
20
+ > ブロック整形コンテキストは、以下のうちの少なくとも一つから生成されます。
21
+ >
22
+ - 文書のルート要素 (<html>)
23
+ - ...
24
+ - 絶対位置指定の要素 (position が absolute または fixed である要素)
25
+ - ...
26
+ - display: flow-root
27
+ - ...
28
+ >
29
+ [ブロック整形コンテキスト - 開発者ガイド | MDN](https://developer.mozilla.org/ja/docs/Web/Guide/CSS/Block_formatting_context)
30
+
31
+ ここでは、`display: flow-root`を使っています。
32
+ 歴史的には`clearfix`や`overflow: hidden`などが使われてきたので、そちらでもいいでしょう。