CSS-grid网格布局之跨越细胞
跨越细胞
使用可能更简单的语法,我们可以切换 grid-column-end 为span关键字。通过这种方式,span我们不必指定区域的结束位置,而是可以定义该项目应分布在多少轨道上:
.item-1 { background: #b03532; grid-column: 1 / span 2; grid-row: 1 / span 2; }
实现代码:
<!DOCTYPE html> <html lang="zh"> <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></title> <style type="text/css"> * { margin: 0; padding: 0; box-sizing: border-box; } a{ text-decoration: none; } body { margin: 30px; background: #f2f2f2; } ul{list-style: none;} .grid-1 { display: grid; grid-template-columns: repeat(3,150px); grid-template-rows: repeat(3,100px); grid-gap: 20px; } .grid-1 div { color: white; font-size: 20px; padding: 20px; } .item-1 { background: #b03532; grid-row: 1 / span 2; /* 横向从第一条开始,合并两块区域 */ grid-column: 1 / span 2; } .item-2 { background: #33a8a5; } .item-3 { background: #30997a; } .item-4 { background: #6a478f; grid-row: 2 / span 2; grid-column: 3; } .item-5 { background: #da6f2b; } </style> </head> <body> <section class="grid-1"> <div class="item-1">1</div> <div class="item-2">2</div> <div class="item-3">3</div> <div class="item-4">4</div> <div class="item-5">5</div> </section> </body> </html>
分析:
根据图展示的区域分布,第一块跟第四块内容比较特殊,都是跨越区域分布的,比如行或列跨越部分实现都用:
grid-row: 1 / span 2; grid-column: 1 / span 2; 行从第一条开始,结束不用写,直接写跨越2个区域用span 2。
本文作者: Jasmine
本文链接: https://www.jianbaizhan.com/article/685
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!