以下のような並びの要素を持ったflex boxがあったとします。
□が8つ(flex item)
flex box の横幅最大値は1000pxで可変
flex itemは30%とかでそれぞれの間に余白を均等にしたい。
frex-wrap:wrapにして3つで折り返す。
以下のようなレイアウトを作りたいです。
詳しい方いらっしゃいますか?
追記
liの両脇は均等にしたい感じです。
liのwidth:25%とかでもセンターに全体でセンターしたいのです。
space-aroundやspace-betweenも試したのですがわかりませんでした。
grewやshrinkなどでできるのかなと思い、質問させていただきました。
追記2
margin:1%でliの余白をとっておりますが、これは例えばspaec-betweenみたいにうまいことできるのであればそちらで制御してもOKです。
ソースコード
html
1<!DOCTYPE HTML> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>display:flex layout</title> 6</head> 7<body> 8<style> 9ul { 10 width: 100%; 11 max-width:1000px; 12 padding: 0px; 13 box-sizing: border-box; 14 background: #fff; 15 border:solid 1px #333; 16 display:flex; 17 flex-direction:row; 18 flex-wrap:wrap; 19 justify-content: center; 20} 21li { 22 background: #f00; 23 width: 30%; 24 border: none; 25 margin: 1%; 26 padding:4% 2%; 27 box-sizing:border-box; 28 text-align: center; 29 list-style:none; 30} 31</style> 32<ul> 33<li>項目1</li> 34<li>項目2</li> 35<li>項目3</li> 36<li>項目4</li> 37<li>項目5</li> 38<li>項目6</li> 39<li>項目7</li> 40<li>項目8</li> 41</ul> 42</body> 43</html> 44