当前位置: 首页 > Web前端 > HTML5

06CSS3布局-置顶(前端必须掌握)

时间:2023-04-05 01:42:46 HTML5

下面主要参考两篇文章http://www.ruanyifeng.com/blo...和https://developer.mozilla.org....如果你想了解更多细节,可以看看这两篇文章。大鹏一日同风而起,腾飞九万里!一起学习,一起进步!传统的CSS布局方案是基于boxed模型,依赖display属性+position属性+float属性,但是对于一些特殊的布局(eg:垂直居中)实现起来并不容易。补充:块元素:出现在另一个元素下面的元素;内联元素:出现在另一个元素旁边的元素,就像段落中的单个单词;display属性有一些默认的显示值,段落之间的默认样式值:display:block;元素默认为display:inline。注意:display:flex和display:grid在布局上比较重要。1.Flex布局Flexbox(Flexbox)用于创建水平/垂直的一维页面布局,对其父元素应用display:flex,所有直接子元素都会按照flex进行布局,但是float、clear、vertical子元素的-align属性将无效。任何容器都可以指定为弹性布局。.box{显示:flex;一个

两个
.box{display:flex;}.box>div{flex:1}one两个三个.container{display:flex;弹性包装:包装;/*可以换行*/justify-content:center;}.item{flex:01150px;边距:5px;/*outermargin*/}flex:是flex-grow、flex-shrink、flex-basis的组合形式。2.Grid布局用于在两个维度上同时按行和列排列元素。grad-template-rows和grid-template-columns定义行和列轨道。grid-gap定义网格之间的间距。网格布局只对item有效,对item子元素无效。以下代码:.box{display:grid;网格模板列:1fr1fr1fr;毕业模板行:100px100px;grid-gap:10px;一个两个三个一个两个注:a.fr单元在网格轨道可用空间中的分布。上面代码中,有3个大小为1fr的网格容器,创建了三列轨道;b.如果最后一个是2fr,则表示最后一首曲目是前者的两倍;C。也可以结合绝对单位使用,eg:grid-template-columns:150px1fr2fr;表示第一列的宽度为150像素,第三列的宽度是第二列宽度的两倍;d.grid-template-columns:150pxauto150px;auto表示由浏览器决定。默认情况下,容器元素是块级元素,但也可以将它们设置为内联元素。以下代码指定div为内联元素,元素内部采用网格布局:div{display:inline-grid;}注:设置网格布局后,容器子元素的float和display:inline(item)-block、display:table-cell、vertical-align和column-*设置将无效。容器指定网格布局后,需要进行行列划分。列宽:grid-template-columns行高:grid-template-rows代码如下:.container{display:grid;网格模板列:100px100px100px;grid-template-rows:100px100px100px;}上面的代码指定创建了一个三行三列的网格,列和宽都是100px,当然也可以使用百分比;或重复(3,100px);或重复(自动填充,100px),当容器尺寸不确定时使用。常用的两列布局:grid-template-columns:minmax(150px,25%)1fr;表示第一列的最小宽度为150px,最大宽度为总宽度的25%。三明治布局grid-template-rows:auto1frauto;垂直分为三部分(header,contentarea,footer),header和footer是原来内容的高度,contentarea都是剩下的高度。圣杯布局(最常用的)是将三明治布局中的内容分成三部分(左栏,主栏,右栏)html代码:
CSS代码:.container{display:grid;grid-template:auto1frauto/auto1frauto;}表示垂直方向(页眉和页脚是自己的内容高度,内容区域占据剩余高度),水平方向(左栏和右栏是自己的高度自己的内容,中间主栏占据剩余高度)。十二格布局:grid-template-columns:repeat(12,1fr);一些常用的网格属性行间距:grid-row-gap列间距:gid-column-gap组合写法:grid-gap设置单元格内容的水平位置:justify-items单元格内容的垂直位置:align-items组合写法:place-items整个内容区域在容器中的水平位置:justify-content整个内容区域在容器中的垂直位置:align-content组合写法:place-contentgrid-column:1/3等价togrid-column:1/span2表示从第一列线到第三列线(即第一列和第二列)grid-row:1/span2,第一行跨越两个格子,(即即,第一行和第二行)grid-area:指定放置item的区域。如有不完善之处,欢迎评论区!