CSSでの要素の幅
この3種類
自分自身で絶対値で指定する
親のサイズによって決まる
%やem (単位)を指定することで、親のサイズに依存した幅を指定できる 子のサイズによって決まる
子の幅が大きくなると、親の幅もそれを包含するように大きくなる
flex-direction: columnのとき、フロー方向が横向きに変わる なので、横幅だけ見ると、子のサイズによって決まる様に見える
Codepen
自分自身で絶対値で指定
code:html
<div style="width: 500px; background-color: lightpink;">
<p>親width = 500px</p>
<div style="background-color: lightblue; width: 600px;">
自分自身で決まる
</div>
<div style="background-color: lightblue; width: 50px;">
自分自身で決まる
</div>
</div>
指定によっては親をはみ出る
親のサイズによって決まる
code:html
<div style="width: 500px; background-color: lightpink;">
<p>親width = 500px</p>
<div style="background-color: lightblue;">
何も指定しないと親の横幅いっぱい(block要素)
</div>
<div style="background-color: lightblue; width: 50%;">
%で親に依存した幅になる
</div>
</div>
子のサイズによって決まる
code:html
<div style="width: 500px; background-color: lightpink;">
<p>親width = 500px</p>
<div style="background-color: lightblue; display:inline;">
この文字分だけ
</div>
</div>
flexは適当に伸縮されるので、伸縮したくないものに対しては使うべきじゃいんだよなたぶん
gridのときの、width/heightの扱い
gridってwidth/heightきかないんだっけ?
これ、幅のはなししてるけど、高さはまた違うよな #?? block要素とかの扱いが違うので。
「子のサイズによって決まる」のが強めになるイメージが有る
html要素によってもデフォルトのwidthの指定が異なる
display属性で変えられる
これはbrowserによって異なることもある(?)