ソース
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .line { width: 500px; height: 5px; background-color: yellow; } .line:after { content: ""; display: inline-block; background-color: blue; width: 50%; height: 5px; } </style> </head> <body> <div class="line"></div> </body> </html>
現在の表示
なってほしい表示
試した事
.line:after
のdisplay
をblock
にしたらなってほしい表示になりました。.line
のline-height: 0;
でもうまくいきました。.line
のheight
を指定無しにし、子要素の高さに準じて.line
の高さが決定するようにしたところ、.line
のheight
がline-height
の初期値分(16px)になりました
予想
要素の中には、その要素自体以外にも『擬似的に文字を入れるための箱』があり、子要素をdisplay: inline-block
とするとその子要素は、親要素自体ではなく『擬似的な箱』の中に配置されるため。
というところまで妄想を膨らませましたが、どういう仕様が原因なのかご教示いただけませんでしょうか。
解決方法はわかったので原因となっている仕様を教えていただきたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/12 09:11
2019/11/12 09:24
2019/11/12 21:59