css的grid布局和表格的区别是什么

html-css021

css的grid布局和表格的区别是什么,第1张

都是页面布局的方式

一般现在都使用div+css布局,以前有很多人用table。

div+css布局的优点是比较方便简洁,代码比较少,制作和维护也比较容易,就是有些地方不同的浏览器兼容性不一样,可能会有不同的显示

table布局代码比较多,到后期维护起来是非常头疼的。这点我是深有体会,刚接手一个网站,

用的就是table布局,结果整个页面嵌套了一层又一层的表格,到处都是trtd,看得头都大了

初时,用div布局会感到很困难,因为浏览器的兼容性问题会让你头大的不得了。这时,你可以采用div+table的方式。也就是说在div中嵌套table表格。使兼容性更好。

使用代码可以时限自动换行。

IE浏览器使用样式tablelayoutfixed,引用内容为abcdefghigklmnopqrstuvwxyz1234567890。即可实现浏览器自动换行。

CSSGrid网格布局又称为Grid网格,是一个二维的基于网格的布局系统,它的目标是完全改变我们基于网格的用户界面的布局方式。CSS一直用来布局我们的网页,但一直以来都存在这样或那样的问题。

一开始我们用表格table,然后是浮动float,再是定位postion和内嵌块inline-block,但是所有这些方法本质上都是只是hack而已,并且遗漏了很多重要的功能例如垂直居中。

Flexbox的出现很大程度上改善了我们的布局方式,但它的目的是为了解决更简单的一维布局,而不是复杂的二维布局实际上Flexbox和Grid能协同工作,而且配合得非常好。Grid网格布局是第一个专门为解决布局问题而创建的CSS模块,只要我们一直在制作网站,我们就一直要讨论这些问题。

在以前面对这样的效果,最好的解决方案是能过HTML的结构来做一定的处理。比如:

<div class="banner">

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

</div>

比如我们的布局效果是960px的水平居中效果:

.container {

    width: 960px

    marign-left: auto

    margin-right: auto

}

.banner .container {

    width: 100%

}

但这种方法虽然能解决我们布局中在某个区域中实现全屏效果。但有的时候,这种方法并不能解决问题。不过,值得庆幸的是,有另外的方案可以在限宽的容器中实现全屏效果。

.u-containProse {

    max-width: 40em

    margin-left: auto

    margin-right: auto

}

.u-release {

    margin-left: calc(-50vw + 50%)

    margin-right: calc(-50vw + 50%)

}

这是一个较新的方案,不过有一个缺点。虽然这个方法能在限定宽度容器中实现全屏的效果,但是在一些平台上会出现一个水平滚动条,这是让人无法接受的。除非你在body元素上设置overflow-x:hidden。