初涉grid布局????(二)

栏目: Html · 发布时间: 5年前

内容简介:上一篇在这,项目基本结构不变根据规范上所说,个人感觉应该是比如第一个item它是1,2, 但是因为它开始的部分是

上一篇在这,项目基本结构不变 初涉grid布局:cat:(一)

<div class="container">
        <div class="item item1">1</div>
        <div class="item item2">2</div>
        <div class="item item3">3</div>
        <div class="item item4">4</div>
    </div>
    <style>
        .item{
            border: 5px solid rgba(0, 0, 0, 0.03); 
            border-radius: 3px;
            font-size: 35px;
            background-color: #ffc600;
        }		 
    </style>
复制代码

基于分割线放置单个项目 (item)

grid-column-start , grid-column-end 这两个属性是设置的item上的,不是container上。 这两个属性可以指定分割线的数值。

分割线数值

.container{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 20px;
}
.item1{
    grid-column-start: 2;
    grid-column-end:3;
}
复制代码
初涉grid布局????(二)
grid-column-startgrid-column-end 可以缩写为 grid-column grid-column: 1 / -1 表示占据100%的grid的宽度(注意grid的宽度不一定等于容器的宽度哦)

span

.container{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 20px;
}
.item1{
    grid-column-start: 2;
    grid-column-end: span 2;
}
复制代码
初涉grid布局????(二)
span表示跨度,如上所示,item开始的地方在第二条线上跨度了两个单元。
.container{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-gap: 20px;
}
.item1{
    grid-column-start: span 2;
}
复制代码

根据规范上所说,个人感觉应该是比如第一个item它是1,2, 但是因为它开始的部分是 span 2 ,所以它的初始位到3了,而此时结束位还在2,根据规范要进行交换。

If the placement for a grid item contains two lines, and the start line is further end-ward than the end line, swap the two lines. If the start line is equal to the end line, remove the end line.

自动创建行列填充

当我们不知道容器宽度的时候想动态的创建 grid-template-columns 时可以用 auto-fitauto-fill 这两个属性。 grid-template-columns: repeat(auto-fit, 150px); 不考虑gap的情况下,当容器只有300px的时候就会创建两列,有450px宽的时候就会创建三列。

关于这两个区别可以参考 Auto-Sizing Columns in CSS Grid: auto-fill vs auto-fit | CSS-Tricks

区域 (area)

<div class="container">
    <div class="item item1">
      <p>I'm Sidebar #1</p>
    </div>
    <div class="item item2">
      <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore, sed.</p>
      <p>Lorem ipsum d</p>
    </div>
    <div class="item item3">
      <p>I'm Sidebar #2</p>
    </div>
    <div class="item footer">
      <p>I'm the footer</p>
    </div>
  </div>
  <style>
    .container {
      display: grid;
      grid-gap: 20px;
      grid-template-columns: 1fr 10fr 1fr;
      grid-template-rows: 150px 150px 100px;
      grid-template-areas:
        "sidebar-1  content   sidebar-2"
        "sidebar-1  content   sidebar-2"
        "footer     footer    ."
    }
    .footer {
      grid-area: footer;
    }
    .item1 {
      grid-area: sidebar-1;
    }
    .item2 {
      grid-area: content;
    }
    .item3 {
      grid-area: sidebar-2;
    }
  </style>
复制代码
初涉grid布局????(二)
grid-template-areas 设置对应格子(cell) 的名称,每个名字可以占用多个格子。 “.” 表示死区,footer只用了两个格子,省略不写的话会报错。 其中点开 grid-area 会发现
初涉grid布局????(二)
这里我理解的是各个area所代表的边界。

居中

justify-items and align-items

.container{
    display: grid;
    grid-template-columns: 100px 100px;
    grid-template-rows: 100px 100px;
    justify-items: center;
    align-items: center;
    grid-gap: 20px;
}
复制代码
初涉grid布局????(二)
如图所示 justify-itemsalign-items 可以将项目在单元格内居中,而且会使得项目的宽度是它本身的宽度,而不会占满单元格。和flex,没有设置 align-items 很像,不设置的时候会自动被填满。 place-items 可以将这两个属性合起来写。

justify-content and align-content

.container{
    display: grid;
    grid-template-columns: 100px 100px;
    grid-template-rows: 100px 100px;
    height: 400px;
    justify-content: center;
    align-content: center;
    grid-gap: 20px;
}
复制代码
初涉grid布局????(二)
如图所示,是将container内部的整体进行居中。

align-self and justify-self

justify-itemsalign-items 都是作用于所有的项目上,这个可以设置单个项目的排列方式。

.container{
    display: grid;
    grid-template-columns: 100px 100px;
    grid-template-rows: 100px 100px;
    justify-items: center;
    align-items: center;
    grid-gap: 20px;
}
.item1{
    justify-self: start;
    align-self: start;
}
复制代码
初涉grid布局????(二)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

参与的胜利

参与的胜利

亨利·詹金斯 / 高芳芳 / 浙江大学出版社 / 2017-9-30 / CNY 42.00

《参与的胜利:网络时代的参与文化》是一场学者之间的对话,三位学者(亨利·詹金斯、伊藤瑞子和丹娜·博伊德)虽然来自不同的代际、不同的学科背景,但他们在相同的参与文化项目中展开合作,并试图解决相似的问题。 希望《参与的胜利:网络时代的参与文化》能够进一步激发团体内部及团体之间的对话,这些团体包括教育者、政策制定者、学者、关注参与文化的公民、业内人士、粉丝及其他任何关心我们文化的未来的人。理想的参......一起来看看 《参与的胜利》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具