前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Grid布局 项目属性

Grid布局 项目属性

作者头像
赤蓝紫
发布2023-03-02 21:10:51
3350
发布2023-03-02 21:10:51
举报
文章被收录于专栏:clzclz

Grid布局 项目属性

容器的基础代码

HTML

代码语言:javascript
复制
<div class="box">    <div>1</div>    <div>2</div>    <div>3</div>    <div>4</div>    <div>5</div>    <div>6</div></div>

CSS

代码语言:javascript
复制
.box {    display: grid;    grid-template-rows: repeat(3, 100px);    grid-template-columns: repeat(3, 100px);}.box div:nth-child(odd) {    background-color: pink;}.box div:nth-child(even) {    background-color: purple;}.box div {    border: 1px solid red;}

项目属性

grid-row系列属性

一共有三个:

grid-row-start属性:上边框所在的水平网格线

grid-row-end属性:下边框所在的水平网格线

grid-row属性:grid-row-startgrid-row-end的简写形式。

代码语言:javascript
复制
grid-row: <start-line> / <end-line>;

说的有点玄玄的,实际体验更清晰。

代码语言:javascript
复制
.box div:nth-child(1) {    grid-row-start: 1;    grid-row-end: 3;}

上面意思就是第一根水平网格线到第三根网格线的部分都是该项目的。其实也可以用数学的取值区间来解释:[1, 3)取第一行到第三行的部分,包含第一行,但不包含第三行。

上面的代码也可以使用grid-row属性来实现。

代码语言:javascript
复制
grid-row: 1 / 3;

属性值还可以使用span关键字,表示跨越多少个网格

grid-row: 1 / span 3;

grid-column系列属性

一共有三个:

  • grid-column-start属性:左边框所在的垂直网格线
  • grid-column-end属性:右边框所在的垂直网格线
  • grid-column属性:grid-column-startgrid-column-end的简写形式。

grid-row系列基本一样,只是换一下方向而已。

代码语言:javascript
复制
grid-row: 1 / span 2;grid-column: 1/ span 2;

排列属性

项目的排列属性有三个:

  • justify-self: 设置单元格内容的水平位置,跟justify-items属性用法一样,只作用于单个项目
  • align-self: 设置单元格内容的垂直位置,跟align-items属性用法一样,只作用于单个项目
  • place-self: justify-selfalign-self的简写形式,跟place-items属性用法一样,只作用于单个项目
代码语言:javascript
复制
.box div:nth-child(1) {    justify-self: center;    align-self: center;    /* 或 */    /* place-self: center; */}

grid-area属性

之前讲解容器属性时,已经使用过grid-template-areasgrid-area来划分区域了。

代码语言:javascript
复制
.box {    display: grid;    width: 300px;    height: 300px;    grid-template-areas:        "header header header"        "nav main main";}.box div:nth-child(1) {    grid-area: header;    background-color: skyblue;}.box div:nth-child(2) {    grid-area: nav;    background-color: purple;}.box div:nth-child(3) {    grid-area: main;    background-color: pink;}

实际上,grid-areagrid-row-startgrid-column-startgrid-row-endgrid-column-end 的简写。

语法:

代码语言:javascript
复制
grid-area: <row-start> / <column-start> / <row-end> / <column-end>

上面例子中grid-area其实也是可以拆分的。

之前也有讲过,划分区域划分有两大原则:

  • 不能当墙头草(跨行的同时跨列)
  • 不能太贪心(同时拿两份不紧贴的)

所以最后划分的区域都一块,而且不能折。

所以其实grid-area: header;包含了以下的信息

非划分区域用法:

代码语言:javascript
复制
grid-area: <row-start> / <column-start> / <row-end> / <column-end>

所以项目的范围是:行:[1, 3),列: [2, 4),也就是1、2行,2、3列。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Grid布局 项目属性
    • 容器的基础代码
      • 项目属性
        • grid-row系列属性
        • grid-column系列属性
        • 排列属性
    • grid-area属性
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档