回答編集履歴
2
この部分は誤っていたので削除します
answer
CHANGED
@@ -50,6 +50,7 @@
|
|
50
50
|
ですので、a要素はインラインボックスを生成しますが、インラインボックスにはブロックレベル要素が入らないので、その場で改行が起きたように処理され、ブロックレベル要素がブロック整形コンテキストに従って配置され、フロートもされていないので回り込みも起きず、ブロックレベル要素の後にインラインボックスの続きが表示されているのだと思います。
|
51
51
|
ただ、そのブロックレベル要素自体はa要素の子要素なので、リンクの対象となっており、ブロック整形コンテキストで配置されたブロックレベル要素は水平方向全てを使ってしまうため、横幅一杯にリンクが広がっているのだと思います。
|
52
52
|
|
53
|
-
これは、a要素の親要素に`display: flex`を適用して、ブロック整形コンテキストではなくフレックス整形コンテキスト下に置いてみると、違いがわかるかと思います。(サンプルの下部)
|
53
|
+
~~これは、a要素の親要素に`display: flex`を適用して、ブロック整形コンテキストではなくフレックス整形コンテキスト下に置いてみると、違いがわかるかと思います。(サンプルの下部)~~
|
54
|
+
(この部分は誤っていたので削除します。)
|
54
55
|
|
55
56
|
つまり、**インラインボックスの中にインラインレベル以外のものを入れるな**、ということかと思います。
|
1
マイルドな表現に変更
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
まず、結論から申し上げます。
|
2
2
|
|
3
|
-
「`display: inline`は**仕様がややこしすぎるので、触るべからず**」
|
3
|
+
「`display: inline`は**仕様がややこしすぎるので、安易に触るべからず**」
|
4
4
|
|
5
5
|
---
|
6
6
|
|