自从用习惯flex布局我基本已经不怎么使用float了。
现在又出现了grid布局,就像flex的升级版,布局上十分强大。
主要属性:
grid-template-columns://竖向排列
grid-template-rows://横向排列
首先比较一下flex和grid实现自适应九宫格,高度800px,宽度适应:

flex

超过一层后样式就复杂了,特别是边框的处理有点复杂。(方法很多,不一一去展示了)。

<html>
<head>
<style type="text/css">
.box {
padding: 10px;
padding-bottom: 0;
padding-right: 0;
display: flex;
flex-direction: column;
height: 800px;
width: calc(100vw - 20px);
background-color: #000;
}
.content {
display: flex;
margin-bottom: 10px;
flex: 1
}
.b {
flex: 1;
margin-right: 10px;
background-color: yellow;
}
</style>
</head>
<body>
<div class="box">
<div class="content">
<div class="b">1</div>
<div class="b">2</div>
<div class="b">3</div>
</div>
<div class="content">
<div class="b">4</div>
<div class="b">5</div>
<div class="b">6</div>
</div>
<div class="content">
<div class="b">7</div>
<div class="b">8</div>
<div class="b">9</div>
</div>
<div>
</body>
</html>

 

 
flex

grid

真的好用!方法也可以有很多,相对flex而言写起来简单多了哈

<html>
<head>
<style type="text/css">
.content {
padding: 10;
display: grid;
grid-template-columns: auto auto auto;
grid-template-rows: auto auto auto;
height: 780px; //padding 有个20的宽度
background-color: #000;
grid-gap: 10px;
}
.b {
background-color: yellow;
}
</style>
</head>
<body>
<div class="content">
<div class="b">1</div>
<div class="b">2</div>
<div class="b">3</div>
<div class="b">4</div>
<div class="b">5</div>
<div class="b">6</div>
<div class="b">7</div>
<div class="b">8</div>
<div class="b">9</div>
</div>
</body>
</html>

效果图:

 
grid
接下来就只讲grid了。

常用属性,属性很多,主要练习下常用的一些属性:

  • grid: 1fr 1fr 1fr/1fr 1fr 1fr ; 高度 高度 高度/(一)列 (二)列 (三) 列
grid: 100px 200px 100px /1fr 1fr 1fr;

等于:

grid-template-rows: 100px 200px 100px;
grid-template-columns: 1fr 1fr 1fr;
grid-template-areas: none;
grid-auto-flow: initial;
grid-auto-rows: initial;
grid-auto-columns: initial;
  • grid-template-columns: 100px 100px; //有几列,每列有多大

  • grid-template-rows :100px 100px; //有几行,每行有多大

  • grid-template: [] '1 1 1' 100px [] /auto 50px auto;
    //[名称] '几列' 这行的高度 [名称] /三列对应的三个宽度
    //(名称可为空 '1 1 1' 就是均分三列)

  • grid-gap: 10px 20px ;//上下间隔10px,左右间隔20px

  • grid-gap: 10px;//上下左右间隔10px

  • grid-column-gap

  • grid-row-gap

  • justify-items:
    start:将内容对齐到网格区域(grid area)的左侧
    end:将内容对齐到网格区域的右侧
    center:将内容对齐到网格区域的中间(水平居中)
    stretch:填满网格区域宽度(默认值)

  • align-items:
    start:将内容对齐到网格区域(grid area)的顶部
    end:将内容对齐到网格区域的底部
    center:将内容对齐到网格区域的中间(垂直居中)
    stretch:填满网格区域高度(默认值)

  • justify-items:
    start:将网格对齐到 网格容器(grid container) 的左边
    end:将网格对齐到 网格容器 的右边
    center:将网格对齐到 网格容器 的中间(水平居中)
    stretch:调整 网格项(grid items) 的宽度,允许该网格填充满整个 网格容器 的宽度
    space-around:在每个网格项之间放置一个均匀的空间,左右两端放置一半的空间
    space-between:在每个网格项之间放置一个均匀的空间,左右两端没有空间
    space-evenly:在每个栅格项目之间放置一个均匀的空间,左右两端放置一个均匀的空间

  • align-content:
    start:将网格对齐到 网格容器(grid container) 的顶部
    end:将网格对齐到 网格容器 的底部
    center:将网格对齐到 网格容器 的中间(垂直居中)
    stretch:调整 网格项(grid items) 的高度,允许该网格填充满整个 网格容器 的高度
    space-around:在每个网格项之间放置一个均匀的空间,上下两端放置一半的空间
    space-between:在每个网格项之间放置一个均匀的空间,上下两端没有空间
    space-evenly:在每个栅格项目之间放置一个均匀的空间,上下两端放置一个均匀的空间

这是主体上常用的一些属性了,不想做文档解释了。讲属性的文章挺多的,主要就是练习,多用用。

原文:https://www.jianshu.com/p/41c038baf994

强大的display:grid的更多相关文章

  1. display:grid

    使用grid布局 参考资料http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html flex布局还没完全用利索,但这个grid布 ...

  2. CSS3中的display:grid网格布局介绍

    1.网格布局(grid): 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局; 2.基本概念: 容器和项目,如图所示: <div class="content&qu ...

  3. 前端CSS3布局display:grid用法

    前端CSS3布局display:flex用法 1. 先附上代码 点击查看代码 <!DOCTYPE html> <html> <head> <meta char ...

  4. 关于display:grid layout

    .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; grid-auto-rows: min ...

  5. display:grid

    <!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8" ...

  6. css:display:grid布局

    简介 CSS Grid布局 (又名"网格"),是一个基于二维网格布局的系统,主要目的是改变我们基于网格设计的用户接口方式.如我们所知,CSS 总是用于网页的样式设置,但它并没有起到 ...

  7. [转]使用CSS3 Grid布局实现内容优先

    使用CSS3 Grid布局实现内容优先  http://www.w3cplus.com/css3/css3-grid-layout-module.html 本文由大漠根据Rachel Andrew的& ...

  8. grid栅格布局

    前面的话 Grid布局方式借鉴了平面装帧设计中的格线系统,将格线运用在屏幕上,而不再是单一的静态页面,可以称之为真正的栅格.本文将详细介绍grid布局 引入 对于Web开发者来说,网页布局一直是个比较 ...

  9. CSS Grid基于网格的二维布局系统(详细教程)

    .grid-wrap{ display: inline-flex; padding: 20px; background: #f4f4f4; word-break: initial; } .handle ...

随机推荐

  1. Java_jdbc 基础笔记之十一数据库连接 (通用的查询方法)

    鉴于之前的查询方法,在这里我们可以写一个通用的方法 /** * 鉴于 student.和customer查询的方法有好多相同之处,在此可以写一个通用的方法 */ public <T> T ...

  2. excel打开csv 出现乱码

    现在做舆情分析的相关项目,在数据处理的时候,发现了一个问题.将数据写入到csv文件,用excel打开(默认)就会出现乱码,如果将数据写入到.xlsx文件就不会出现乱码,因为csv是通用格式,所以我猜想 ...

  3. Servlet2.5版本和Servlet3.0版本

    在学习这节之前你需要在你自己的电脑进行如下配置: 配置Java运行环境:JDK+JRE的安装配置,参考博客Windows下配置Java开发环境: 安装Eclipse:参考博客Windows下配置Jav ...

  4. [LeetCode] 254. Factor Combinations 因子组合

    Numbers can be regarded as product of its factors. For example, 8 = 2 x 2 x 2; = 2 x 4. Write a func ...

  5. Google Drive网盘文件直链获取一键脚本

    说明:本脚本可以将Google Drive网盘的文件分享链接或者文件ID变成直链,方便我们在很多情况下调用.只支持文件分享,不支持文件夹.文件分享ID为26到48位.   使用 1.需求 wget.g ...

  6. Oracle:时间字段模糊查询

    需要查询某一天的数据,但是库里面存的是下图date类型 将Oracle中时间字段转化成字符串,然后进行字符串模糊查询 select * from CAINIAO_MONITOR_MSG t WHERE ...

  7. Dynamic Property Wizard 添加类提示 ATL类只能添加到MFC EXE 和MFC规则DLL项目或完全支持ATL的项目 错误提示解决方式

    在重新打开OPM项目添加ATL动态属性向导Dynamic Property Wizard提示错误 ATL类只能添加到MFC EXE 和MFC规则DLL项目或完全支持ATL的项目. 有效的解决方式,右键 ...

  8. VMware的包格式vmdk转换为virtualBox的ova

    使用winxp的vmdk作为案例 1 使用vmvare导入vmdk的winxp,点击文件---->导出为ovf 2 找到生成的ovf文件 3 打开virtualBox 管理---->导入虚 ...

  9. 轮胎魔术公式(Magic Fomula)模型

    魔术公式是用三角函数的组合公式拟合轮胎试验数据,用一套形式相同的公式就可以完整地表达轮胎的纵向力Fx.侧向力Fy.回正力矩Mz.翻转力矩Mx.阻力矩My以及纵向力.侧向力的联合作用工况,故称为“魔术公 ...

  10. lay-verify

    lay-verify:是表单验证的关键字 required (必填项) phone(手机号) email(邮箱) url(网址) number(数字) date(日期) identity(身份证) 自 ...