CSS弹性布局

html-css018

CSS弹性布局,第1张

CSS2.1定义了 4 中布局方式

给任意元素设置 display:flex,弹性布局就会被创建,flex 的子项会发生变化.

flex-direction属性用来控制 flex 子项的整体布局方向,决定是从左往右排序.flex-dirction属性有以下语法

flex-wrap属性用来控制 flex 子项单行显示还是换行显示,以及在换行显示情况下,没一行内容是否在垂直方向的反向显示.

flex-flow属性是 flex-dirction属性和 flex-wrap属性的缩写.表示弹性布局的流动性特性

CSS 在 flex 中属性名称基本上是几个固定单词的组合,且这些单词在整个 CSS 世界中是通用的含义

justify-content 属性在弹性布局中常用的语法如下

align-item和 align-self属性的一个区别是 align-self属性是设置在具体的某个 flex 子项上,而 flex-items 属性是设置在 flex 容器上,器控制 flex 子项的垂直对齐方式,align-self默认值是 auto,其余的数据值个 align-items 属性值一致.属性如下

align-content属性和 align-items属性的区别在于 align-items属性设置的是每一个 flex 子项的垂直对齐方式,而 align-content 属性是将所有作为一个整体进行垂直对齐设置.align-content 属性如下所示

我们可以通过 order 属性来改变 flex 子项的顺序位置.order 属性越小优先级别越高

flex 属性是弹性布局的精髓,因此弹性布局就是 flex 属性的作用.flex 属性是 flex-grow flex-shinrk flex-basic这 3 个属性的缩写.我们先了解下flex 常用的几个声明

表示的是什么意思?

flex-basic 属性用来表示基础宽度

flex-grow 属性表示宽度还有剩余的时候

flex-shrink 属性表示宽度不足的时候

flex:0等同设置 flex:0 1 0%,flex:none等同设置了 flex:0 0 auto.

如果没一行的行数是固定的,则可以使用两种方式实现最后一行对齐

要实现最后一行对齐,理论上最好使用 gap 属性设置间隙

如果每一行的行数不固定,则上面的方法都失效,需要使用其他的方式实现最最后一行对齐.可以使用空白标签进行填充占位,具体的占位数量由最多列数的个数决定

书写手机网页时,必须约束视口宽度(320-420左右): <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no" id="viewport" /> width=device-width 约束视口 initial-scale=1.0 初始视口倍数是1倍 minimum-scale=1.0 最小允许视口宽度是1倍 maximum-scale=1.0 最大允许视口宽度是1倍 user-scalable=no不允许用户缩放视口 书写移动端网页,没有版心,必须用百分比布局。百分比布局也叫流式布局。 一、百分比布局 width:宽度的百分比是相对于父盒子width内容宽的比。没有父盒子就是相对于浏览器的宽。 height:高度的百分比是相对于父盒子height内容高的比。 padding,margin.:padding和margin不管任何方向百分比都是相对于父盒子width内容宽的比。 border:不能书写百分数 子盒子如果绝对定位,width百分比参考的是距离最近,且有定位的父盒子的width(算上padding.); height百分比参考的是距离最近,且有定位的父盒子的height(算上padding.); padding,margin百分比参考的是距离最近,且有定位的父盒子的width(算上padding.); 例:div{ width: 50%overflow: hidden} p{ width: 50%height: 100pxfloat: leftbackground-color: pink} p:last-child{ background-color: green}二、box-sizing:border-box css2中的盒模型是外扩的。 css3的box-sizing:盒模型内减。(在width、height基础上再书写padding或者border,是在原有宽高上进行内减。) 例: 内减盒模型:书写的width、height就是盒子真正占有的宽和高。 讲真,内减盒模型简直不能再更好用了!!尤其是要自己各种测算的时候! 三、弹性盒 display的属性值:block ,inline,inline-block,none -webkit-box:弹性盒容器。 例: 书写:3个P,宽度比是1:2:3。(X+2X+3X=100%) 抽象公式: 四、固比固模型 固比固模型:第一部分和第三部分宽度是固定值,第二部分宽度是剩余部分的宽度。 例:1和3部分宽度是120px,2自动撑开。 1、利用浮动 2、绝对定位(推荐) 3、弹性盒 五、max-width 和 min-width 移动端网页宽度必须使用百分比,但是网页的最小宽度或者是最大宽度只能书写像素px。不能用百分数。 例: