Web前端之路前端让前端飞

grid初识

2018-04-05  本文已影响9人  海娩

grid布局是一个二维的基于网格的布局系统,这是个非常强大的css模块,然而有个令人伤心的话题就是兼容性问题,一个兼容性否定了他的推广,然而,这并不影响我们的学习,因为,只是时间问题。
兼容性可以看这个网站
can i use

image.png

话不多说,开始学习吧
先创建一个html文件

<div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>

然后开始我们最基础的两个性质

grid-template-columns
     .container {
        display: grid;
        height: 100px;
        grid-template-columns: 20px auto 20px;
        border: 1px solid;
    }
    .item {
        border: 1px solid;
    }
    .is-one {
        background: rebeccapurple;
    }
image.png

从最基本的我们可以看出,其实这个grid跟flexbox挺像的,是在父元素设置子元素的排列方式,然后子元素就会有统一的布局,如果子元素再有一些不一样的布局,也可以自己改。
另外,有没有瞬间又觉得很方便了,做两栏布局三栏布局甚至四栏五栏六栏都是so easy 的事情了呀。什么自适应都是so easy啦

grid-template-rows

就把上面的grid-template-columns属性换个属性名。


image.png

grid-template-areas

image.png
不详解撒,给图
image.png
如果想留一个网格的空白,可以有一个.占位。
在图中就是把其中一个header变成.就可以了
grid-column-gap / grid-row-gap

行或者列的空隙
先来效果图!


image.png

在上一个例子的基础上,增加这两条嘻嘻。


image.png

上面讲的都是网格怎么怎么排列的,接下来我们要讲网格内容物的排列方式啦

justify-items
image.png
看看这个,当内容物宽度小于网格宽度时候,内容物就会往左边跑,这是文档流默认特性,这个时候我们可以通过设置justify-items属性啦。

align-items

既然有水平方向,怎么可以没有垂直方向呢!


image.png

看这样,是不是就跑上去了!这里我只设置item的高度,没有设置宽度,所以宽度是stretch啦,跟上面说的占据这个网格空间是一致的。

好的,今天就讲到这里拉,这是最基础的部分,接下来还有稍微复杂一些的操作就等到下次再说吧

上一篇 下一篇

猜你喜欢

热点阅读