强大的display:grid
自从用习惯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>

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: 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的更多相关文章
- display:grid
使用grid布局 参考资料http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html flex布局还没完全用利索,但这个grid布 ...
- CSS3中的display:grid网格布局介绍
1.网格布局(grid): 它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局; 2.基本概念: 容器和项目,如图所示: <div class="content&qu ...
- 前端CSS3布局display:grid用法
前端CSS3布局display:flex用法 1. 先附上代码 点击查看代码 <!DOCTYPE html> <html> <head> <meta char ...
- 关于display:grid layout
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; grid-auto-rows: min ...
- display:grid
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- css:display:grid布局
简介 CSS Grid布局 (又名"网格"),是一个基于二维网格布局的系统,主要目的是改变我们基于网格设计的用户接口方式.如我们所知,CSS 总是用于网页的样式设置,但它并没有起到 ...
- [转]使用CSS3 Grid布局实现内容优先
使用CSS3 Grid布局实现内容优先 http://www.w3cplus.com/css3/css3-grid-layout-module.html 本文由大漠根据Rachel Andrew的& ...
- grid栅格布局
前面的话 Grid布局方式借鉴了平面装帧设计中的格线系统,将格线运用在屏幕上,而不再是单一的静态页面,可以称之为真正的栅格.本文将详细介绍grid布局 引入 对于Web开发者来说,网页布局一直是个比较 ...
- CSS Grid基于网格的二维布局系统(详细教程)
.grid-wrap{ display: inline-flex; padding: 20px; background: #f4f4f4; word-break: initial; } .handle ...
随机推荐
- Spark2.x(五十五):在spark structured streaming下sink file(parquet,csv等),正常运行一段时间后:清理掉checkpoint,重新启动app,无法sink记录(file)到hdfs。
场景: 在spark structured streaming读取kafka上的topic,然后将统计结果写入到hdfs,hdfs保存目录按照month,day,hour进行分区: 1)程序放到spa ...
- Java_jdbc 基础笔记之九 数据库连接 (查询Customer对象的方法)
/** * * 写一个查询Customer对象的方法 * */ public Customer getCustomer(String sql, Object... args) { Customer c ...
- win10下通过npm成功搭建react开发环境
1.安装node-v12.13.1-x64(LTS) 2.安装creatre-react-app: npm install -g create-react-app 3.通过create-react-a ...
- 案例:使用BeautifuSoup4的爬虫
使用BeautifuSoup4解析器,将招聘网页上的招聘单位名称存储出来.其他信息可类似爬取即可 # -*- coding:utf-8 -*- from bs4 import BeautifulSou ...
- asp.net core项目 Nlog直接写入集群ElasticSearch的配置方法
1.NuGet 项目引用 NLog.Web.AspNetCore NLog.Targets.ElasticSearch 2.nlog.config配置文件: <?xml version=&quo ...
- [Python] 01 - Number and Matrix
故事背景 一.大纲 如下,chapter4 是个概览,之后才是具体讲解. 二. 编译过程 Ref: http://www.dsf.unica.it/~fiore/LearningPython.pdf
- 查看appPackage和appActivity的多种方法
一.通过adb shell 查看 adb shell dumpsys activity | grep 包名 列如: C:\Users\admin>adb shell root@shamu:/ # ...
- [LeetCode] 282. Expression Add Operators 表达式增加操作符
Given a string that contains only digits 0-9 and a target value, return all possibilities to add bin ...
- 树莓派插入U盘自动拷贝系统日志到U盘或通过U盘升级程序
注意,U盘用Fat32格式,NTFS格式的话,需要在Linux另外安装相应驱动. 可通过udev实现如题的功能. 在/etc/udev/rules.d/目录下新建规则文件98-logcopy.rule ...
- [转帖]在 k8s 中自动为域名配置 https
在 k8s 中自动为域名配置 https https://juejin.im/post/5db8d94be51d4529f73e2833 随着 web 的发展,https 对于现代网站来说是必不可少的 ...