flexを使っていて
片方の横幅を固定したつもりでも、可変になっていることがあったので
やり方をまとめてみました。
See the Pen CSS display flex 片側の横幅固定サンプル by takapen (@takapen) on CodePen.
サンプル1
固定したい方にwidth:100px;
可変の方にflex:1;
#div01 dl {
margin-bottom: 10px;
display: flex;
}
#div01 dt {
width:100px;/* point */
display: flex;
justify-content: center;
align-items: center;
background: #daa;
}
#div01 dd {
flex:1;/* point */
padding: 10px;
background: #aad;
}
サンプル2
固定したい方にflex-basis: 100px; flex-shrink:0;
可変の方にflex:1;
#div02 dl {
margin-bottom: 10px;
display: flex;
}
#div02 dt {
flex-basis: 100px;/* point */
flex-shrink:0;/* point */
display: flex;
justify-content: center;
align-items: center;
background: #daa;
}
#div02 dd {
flex:1;/* point */
padding: 10px;
background: #aad;
}
サンプル3
固定したい方にwidth: 100px;
可変の方にwidth: calc(100% - 100px);
#div03 dl {
margin-bottom: 10px;
display: flex;
}
#div03 dt {
width: 100px;/* point */
display: flex;
justify-content: center;
align-items: center;
background: #daa;
}
#div03 dd {
width: calc(100% - 100px);/* point */
padding: 10px;
background: #aad;
}
どのやり方がいいんですかね..?
脳みそ的にはcalcを使ったほうがわかりやすいけど
修正する場所が増えるし
1か2のやり方の方がよさそうですね