CSS3 grid 布局参考链接: > React liftcycle > CSS Grid 布局完全指南 > A Complete Guide to Grid <style> .my-grid .container{ font-size:12px; display:grid; max-width: 80%; margin:0 auto; grid-gap: 20px 20px; grid-template-columns: minmax(100px, auto) minmax(150px, auto) repeat(3, minmax(75px, auto)) minmax(150px, auto) } .my-grid section{ background: #eee; border:1px solid #999; border-radius: 3px; } .my-grid .phase{ display: flex; justify-content: center; align-items: center; flex-direction: column; } .my-grid h3{ margin:0; } .my-grid p{ margin:0; } .my-grid .section-title{ display: flex; justify-content: center; height:40px; align-items:center; } .my-grid .methods{ background:lightgreen; border: 1px solid green; border-radius: 3px; margin: 0 15px; text-align:center; padding: 10px 8px; } .my-grid .uitem{ margin:0 15px; padding: 10px 0px; text-align: center; } .my-grid .rowline{ height:0; border:0; border-bottom:1px solid #333; } .my-grid .columnline{ border:0; width:0; border-right:1px solid #333; position:relative; margin: -20px auto -10px 50%; } .my-grid .columnline.down:after{ content: ""; display: block; position: absolute; bottom: -5px; left: -3px } .my-grid .columnline.down:after{ width: 7px; height: 10px; background: #333; clip-path: polygon(0 0,100% 0,50% 100%); } .my-grid .dashed{ border-style: dashed; } .my-grid .solid{ border-style: solid; } .my-grid .constructor{ background:lightskyblue; } .my-grid .render{ background: skyblue; } .my-grid .updates{ background:lightyellow; } .my-grid .section-white{ background:white; border:1px solid #999; border-top-color:#ddd; border-radius: 3px; border-top-left-radius: 0; border-top-right-radius: 0; } </style> ```html <div class='my-grid' style="margin:50px auto;"> <div class="container"> <section class="s1" style="grid-area:1/2/span 14/span 1;"></section> <section class="s2" style="grid-area:1/3/span 14/span 3;"></section> <section class="s3" style="grid-area:1/6/span 14/span 1;"></section> <div class="section-white s1" style="grid-area:8/2/span 7/span 1"></div> <div class="section-white s2" style="grid-area:8/3/span 7/span 3"></div> <div class="section-white s3" style="grid-area:8/6/span 7/span 1"></div> <div class="phase" style="grid-area:3/1/span 6/auto;"> <h3>Render phase</h3> <p>Pure and has no side effects,May be paused, aborted or restarted by React.</p> </div> <div class="phase" style="grid-area:9/1/span 6/auto;"> <h3>Commit phase</h3> <p>Can work with DOM,run side effects, schedule updates</p> </div> <h3 class="section-title" style="grid-area:1/2/auto/span 1">Mounting</h3> <h3 class="section-title" style="grid-area:1/3/auto/span 3">Updating</h3> <h3 class="section-title" style="grid-area:1/6/auto/span 1">Unmounting</h3> <div class="rowline line1 dashed" style="grid-area:8/1/span 1/1"></div> <!---mount 箭头--> <div class="columnline s1 l1 dashed down" style="grid-area:2/2/3/span 1"></div> <div class="columnline s1 l2 dashed down" style="grid-area:5/2/6/span 1"></div> <div class="columnline s1 l3 dashed down" style="grid-area:8/2/9/span 1"></div> <div class="columnline s1 l4 solid down" style="grid-area:11/2/12/span 1"></div> <!---updating 箭头--> <div class="columnline s2 l5 dashed down" style="grid-area:5/3/6/span 1"></div> <div class="columnline s2 l6 dashed down" style="grid-area:5/4/6/span 1"></div> <div class="columnline s2 l7 dashed down" style="grid-area:5/5/6/span 1"></div> <div class="columnline s2 l8 dashed down" style="grid-area:8/4/9/span 1"></div> <div class="columnline s2 l9 solid down" style="grid-area:11/4/12/span 1"></div> <!---unmounting 箭头--> <div class="columnline s3 l9 dashed down" style="grid-area:2/6/12/span 1"></div> <div class="methods" style="grid-area:12/2/span 2/span 1">component­Did­Mount</div> <div class="methods" style="grid-area:12/3/span 2/span 3">component­Did­Update</div> <div class="methods" style="grid-area:12/6/span 2/span 1">component­Will­Unmount</div> <div class="methods constructor" style="grid-area:3/2/span 2/span 1">constructor</div> <div class="methods render" style="grid-area:6/2/span 2/span 4">render</div> <div class="methods updates" style="grid-area:9/2/span 2/span 4">React updates DOM and refs</div> <div class="uitem u1" style="grid-area:3/3/span 2/span 1">New Props</div> <div class="uitem u2" style="grid-area:3/4/span 2/span 1">setSate()</div> <div class="uitem u3" style="grid-area:3/5/span 2/span 1">forceUpdate()</div> </div> </div>