grid 布局的使用
   css 网格布局,是一种二维布局系统。
   浏览器支持情况:老旧浏览器不支持,
   概念: 网格容器。元素应用dispalay:grid,它是所有网格项的父元素。
      <div class="container">
         <div class="item item-1"></div>
        <div class="item item-2"></div>
        <div class="item item-3"></div>
       </div>
    网格项。网格容器的子元素。
      <div class="container">
        <div class="item "></div>
         <div class="item "></div>
        <div class="item"></div>
       </div>
    网格线。组成网格线的分界线,他们可以是列网格线,也可以是行网格线
    网格轨道。两个相邻的网格线之间为网格轨道,可以认为是网格的行列或者行。
    网格单元。两个相邻的列网格线和两个相邻的网格线组成的网格单元,它是最小的网格单元。
    网格区。网格区是由任意数量网格单元组成。
  设置在网格容器上的属性
    注:当元素设置了网格布局,column、float、clear、vertical-align属性无效
    1. display: grid | inline-grid | subgrid;
      属性值: grid: 生成块级网络
      inline-grid: 生成行内网格
      subgrid: 如果容器本身是网格项,用来继承父容器的行列大小。
    

    2.grid-template-columns: <track-size> ... | <line-name> <track-size> ... ;
      grid-template-rows: <track-size> ... | <line-name> <track-size>
      设置行和列的大小。
        属性值: track-size: 轨道大小,可以使用css长度,百分比或用分数。
            line-name:网格线名字,可以选择任意名字。
          当设置行或者列大小为auto 时,网格会自动分配空间和网格名称。
        .container{
             display:grid;
             grid-template-columns: 40px 50px auto 50px 40px;
             grid-template-rows: 25% 100px auto;
           }
 
      可以给网格线定义名字.
          .container{
            display:grid; grid-template-columns: [first] 40px [line2] 50px [line3] auto [col4-start]
              50px [five] 40px [end];
             grid-template-rows: [row1-start] 25% [row1-end] 100px [third-line]
            auto [last-line];
           }
      用fr单位可以将容器分为几等份,例如下面分成三等份
        .container{
             display:grid;
            grid-template-columns: 1fr 1fr 1fr;
        }

    3.grid-template-areas
      通过获取网格项中的grid-area属性值(名称),来定义网格模版。
      重复网格区(grid-area)名称将跨越网格单元格,‘.’代表空网格单元。
        属性值: grid-area-name: 网格项的grid-area属性值(名字)‘.’ : 空网格单元 none: 不定义网格区域
          .item-a{ grid-area: header; }
          .item-b{ grid-area: main; }
          .item-c{ grid-area: sidebar; }
          .item-d{ grid-area: footer; }
          .container{
               display:grid;
               grid-template-columns: 50px 50px 50px 50px;
              grid-template-rows: auto;
              grid-template-areas: "header header header header" "main main . sidebar" "footer footer footer footer" }
    

    4. grid-column-gap:<line-size>; 和 grid-row-gap: <line-size> ;
        网格单元间距
        属性值:line-size: 网格线间距,设置单位值
        .container{
          display:grid;
          grid-template-columns: 100px 50px 100px;
          grid-template-rows: 80px auto 80px;
          grid-column-gap: 10px; grid-row-gap: 15px;
        }
    5. grid-gap:<grid-column-gap> <grid-row-gap>;
      是grid-column-gap 和 grid-row-gap简写。
        .container{
          display:grid;
          grid-template-columns: 100px 50px 100px;
          grid-template-rows: 80px auto 80px;
          grid-gap: 10px 15px;
        }
    6. justify-items: start | end | center | stretch(默认) ;
      垂直于列网格线对齐,适用于网格容器里的所有网格项。
        属性值:
          start: 左对齐。
          end: 右对齐。
          center: 居中对齐。
          stretch: 填满(默认)。
          .container{
             display:grid;
            justify-items: start;
           }
  

    7. align-items: start | end | center | stretch ;
        垂直于行网格线对齐,适用于网格容器里的所有网格项。
        属性值:
          start: 顶部对齐。
          end: 底部对齐。
          center: 居中对齐。
          stretch:填满(默认)。
    8. justify-content: start | end | center | stretch | space-around |
        space-between | space-evenly ;
      如果用像px非弹性单位定义的话,总网格区域大小有可能小于网格容
        器,这时候你可以设置网格的对齐方式(垂直于列网格线对齐)。
      属性值: start: 左对齐。 end: 右对齐。 center: 居中对齐。
          stretch: 填满网格容器。 space-around: 网格项两边间距相等,网格项之间间隔是单侧的2倍。
             space-between: 两边对齐,网格项之间间隔相等。 space-evenly: 网格项间隔相等。
      .container{ display:grid; justify-content: start; }

    9. align-content: start | end | center | stretch | space-around |
        space-between | space-evenly ;
      如果用像px非弹性单位定义的话,总网格区域大小有可能小于网格
        容器,这时候你可以设置网格的对齐方式(垂直于行网格线对齐)。
          属性值: start: 顶部对齐。 end: 底部对齐。 center: 居中对齐。
               stretch: 填满网格容器。 space-around: 网格项两边间距相等,网格项之间间隔是单侧的2倍。
              space-between: 两边对齐,网格项之间间隔相等。 space-evenly: 网格项间隔相等。
      .container{ display:grid; align-content: start; }
  

    10. grid-auto-columns: <track-size> ... ; 和 grid-auto-rows: <track-size> ... ;
      自动生成隐式网格轨道(列和行),当你定位网格项超出网格容器
      范围时,将自动创建隐式网格轨道.
      属性值:track-size: 网格轨道大小,可以是固定值,百分比或者是
      分数(fr单位)。
      .container{
          display:grid;
          grid-template-columns: 60px 60px;
          grid-template-rows: 90px 90px
       }
    

    11. grid-auto-flow : row(默认) | column | dense ;
      在没有设置网格项的位置时,这个属性控制网格项怎样排列
        属性值:
          row: 按照行依次从左到右排列。
          column: 按照列依次从上倒下排列。
          dense: 按先后顺序排列。
 
设置在网格项上的属性
    1. grid-column-start: <number> | <name> | span <number> | span <name> | auto ;    
         grid-column-end: <number> | <name> | span <number> | span <name> | auto ;    
         grid-row-start: <number> | <name> | span <number> | span <name> | auto ;    
         grid-row-end: <number> | <name> | span <number> | span <name> | auto ;
    通过网格线来定义网格项的位置。grid-column-start、grid-row-start定义网格项的
      开始位置,grid-column-end、grid-row-end定义网格项的结束位置。
      属性值: line: 指定带编号或者名字的网格线。 span <number>: 跨越轨道的数量。
       span <name>: 跨越轨道直到对应名字的网格线。 auto: 自动展示位置,默认跨度为1。
        .item-a{
             grid-column-start: 2;
            grid-column-end: five;
             grid-row-start: row1-start grid-row-end: 3
        }
    

    2. grid-column: <start-line> / <end-line> | <start-line> / span <value> ;      
      grid-row: <start-line> / <end-line> | <start-line> / span <value> ;
        是 grid-column-start、grid-column-end 和 grid-row-start、grid-row-end 的简写。
        .item-c{ grid-column: 3 / span 2; grid-row: third-line / 4; }
    

    3. grid-area: <name> | <row-start> / <column-start> / <row-end> / <column-end> ;
      定义网格项名字,以便创建模块(容器属性grid-template-areas来定义模块)。
        属性值: name: 项目名子。 <row-start> / <column-start> / <row-end> / <column-end>:
      可以是数字或网格线名字。
        例子: 定义网格项名字:
            .item-d{ grid-area: header }
            通过网格线定位网格项:
          .item-d{
              grid-area: 1 / col4-start / last-line / 6 ;
            }
    4. justify-self: justify-self: start | end | center | stretch;
      定义单个网格项垂直于列网格线的对齐方式。
      属性值: start: 网格区域左对齐。 end: 网格区域右对齐。
           center: 网格区域居中。 stretch: 网格区域填满。
      

    5. align-self: start | end | center | stretch;
      定义单个网格项垂直于行网格线的对齐方式。
      属性值:
        start: 网格区域顶部对齐。
        end: 网格区域底部对齐。
        center: 网格区域居中。
        stretch: 网格区域填满。

grid 布局的使用的更多相关文章

  1. WPF中Grid布局

    WPF中Grid布局XMAl与后台更改,最普通的登录界面为例. <Grid Width="200" Height="100" > <!--定义 ...

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

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

  3. wpf后置代码中的Grid布局以及图片路径的设置

    之前用Grid练习连连看布局时,遇到了几个困惑.此次就把当时的一些收获写出来,供以后翻看. 图片路径可能比较常用,所以就写在第一个了. 在xaml中,设置图片非常简单,只要把图片拷贝到资源目录(这里假 ...

  4. css grid布局的首次使用

    首先来看一下效果图 接下来废话不多说,先上代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  5. 学习ExtJS的grid布局

    这是之前学习ExtJS布局的时候我导师让我重点熟悉的内容.之后会发一个最近写的结合MVC项目的grid布局的案例. 上一篇关于ExtJS的学习资料什么的都已经更在上一篇了,这里只是对一些代码的记录. ...

  6. CSS字体渐变 & 隐藏浏览器滚动条 & grid布局(转载)

    字体渐变  https://www.zhangxinxu.com/study/201104/css3-text-gradient-2.html 隐藏浏览器滚动条  https://blog.csdn. ...

  7. CSS Grid 布局完全指南(图解 Grid 详细教程)

    CSS Grid 布局是 CSS 中最强大的布局系统.与 flexbox 的一维布局系统不同,CSS Grid 布局是一个二维布局系统,也就意味着它可以同时处理列和行.通过将 CSS 规则应用于 父元 ...

  8. 快速使用CSS Grid布局,实现响应式设计

    常用Grid布局属性介绍 下面从一个简单Grid布局例子说起. CSS Grid 布局由两个核心组成部分是 wrapper(父元素)和 items(子元素). wrapper 是实际的 grid(网格 ...

  9. 补发————grid布局

    CSS Grid布局是CSS中最强大的布局系统.与flexbox的一位布局不同的是CSS Grid布局是一个二维布局系统,即它可以同时处理列和行.通过将CSS规则应用于父元素和其子元素,就可以轻松使用 ...

  10. tkinter之grid布局管理器详解

    在很久之前,我发过一篇<tkinter模块常用参数>,里面已经几乎涵盖了tkinter的大部分教程. 好吧,其实也就是上一篇而已啦. 所谓布局,就是指控制窗体容器中各个控件(组件)的位置关 ...

随机推荐

  1. javaScript删除对象、数组中的null、undefined、空对象、空数组方法

    这两天在项目中遇到后台需要传的数据为不能有null,不能有空值,而这个数据又是一个庞大的对象,对组集合,所以写了个方法来解决这个问题.为了兼具所有的种类类型,封装了方法,代码如下: let obj = ...

  2. 26_线程池_ThreadPoolExecutor

    [ThreadPoolExecutor简述] 无论是Executors类的newFixedThreadPool().newSingleThreadExecutor(),还是newCachedThrea ...

  3. 【转载】javascript深入理解js闭包

    一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...

  4. c++开发ocx入门实践一

    原文:http://blog.csdn.net/yhhyhhyhhyhh/article/details/51374200 最近项目中利用ocx封装了底层视频播放及处理的控件,以供c#和web调用.对 ...

  5. kafka leader平衡策略

    1.1个partition的默认leader是replicas中的第一个replica 2.kafka controller会启动一个定时的check线程,kafka默认是5min周期,mafka是3 ...

  6. javascprit form表单提交前验证以及ajax返回json

    1.今天要做一个手机验证码验证的功能.需求是前端页面点击发送 短信验证码,后台接收后通过ajax返回到前端,之后前端在提交时候进行验证.思路很简单,不过做的过程还是学到不少的东西. 1.ajax请求后 ...

  7. PHP 调用web service接口(.net开发的接口)

    实例代码1: try { $this->soapClientObj = new SoapClient(self::URL . '?wsdl', array('connection_timeout ...

  8. js 浅拷贝有大用

    如题 像浅拷贝.深拷贝这类的知识点我们应该都明白是怎么回事,大部分都是在面试的时候会被问到.大多让你实现一个深拷贝.现实中我们都用比较暴力直接的手段 JSON stringify. 一句话就搞定,管他 ...

  9. Elasticsearch 架构原理

    为什么要学习架构? Elasticsearch的一些架构设计,对我们做性能调优.故障处理,具有非常重要的影响.下面将从Elasticsearch的准实时索引的实现.自动发现.rounting和repl ...

  10. February 20 2017 Week 8 Monday

    Behind every beautiful thing, there's some kind of pain. 美丽背后,必有努力. No pains, no gains, and sometime ...