一、弹性布局
弹性伸缩布局
display:flex
事实上它是一种新类型的盒子模型,也有书上称作弹性伸缩盒布局。 比较新的布局方式:旨在提供一个更加有效的方式来布置,对齐和分布在容器之间的各项内容,即 使它们的大小是未知或者动态变化的。 弹性布局的主要思想是让容器有能力来改变项目的宽度和高度,以填满可用空间 (主要是为了容纳 所有类型的显示设备和屏幕尺寸)的能力。
弹性布局属性
属性要写在父盒子上
flex-wrap:是否换行(是否为了弹性布局挤压自己的子盒子
nowrap:默认,不换行
wrap:换行
wrap-reverse:改变朝向(自下而上)
justify-content:子盒子排列方式(水平方向)
center:居中
space-between:两端对齐,中间自适应
space-around:两端对齐,中间自适应。两端留空,值为中间空的一半
space-evenly:两端对齐,中间自适应。空隙均匀分布
flex-direction:改变盒子排列方向
row:默认值,横向排列
column:纵向排列
row-reverse:横向,自右向左
column-reverse:纵向,自下而上
align-items:子盒子纵向排列方式
center:居中
flex-end:靠下排列
flex-start:靠上排列
baseline:与基线对齐
stretch:如果指定侧轴大小的属性值为‘auto’,则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸
align-content:定义了多根轴线的对齐方式
stretch(默认值):轴线占满整个交叉轴。
flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐,整体垂直居中。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
align-self:子盒子自身排列方式
center:居中
flex-end:靠下排列
flex-start:靠上排列
baseline:与基线对齐
stretch:如果指定侧轴大小的属性值为‘auto’,则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸
二、其他布局
1.固定布局(px)
优点
1. 固定宽度布局更容易使用,在设计方面更容易定制。
2. 在所有浏览器中宽度一样,不设置 min-width 和max-width,来防止内容缩放引起的布局混乱。
缺点
1. 对于使用高分辨率的用户,固定宽度布局会留下很大的空白。
2. 屏幕分辨率过小时需要垂直滚动条
2.流体布局(%)
流体布局,主体部分都是用了百分比宽度,因此可以自适应用户的分辨率。
优点:
1. 流动布局页面对用户更友好,因为它能自适应用户的设置。
2.页面周围的空白区域在所有分辨率和浏览器下都是相同的,在视觉上更美观。
缺点:
1.设计者更难控制用户所见,并可能忽略掉一些错误,因为在特定的分辨率下看起来好的。
2.视频以及其他设置了宽度的内容可能需要多种宽度以适应不同分辨率的用户。
3.浮动布局(float)
4.定位布局(position)
5.多列布局
columns 规定设置 column-width 和 column-count 的简写属性
column-rule 设置所有 column-rule-* (color,style,width)属性的简写属性
column-span 规定元素应该横跨的列数。默认值为 1,可以设置为 all
column-gap 规定列之间的间隔。
column-fill 规定如何填充列。 (主浏览器都不支持该属性)
6.BFC布局
触发BFC:
1.float除none之外的属性
2.定位(absolute,fixed)
3.display:inline-box,table-cells,flex
4.overflow:hidden,auto,scroll
BFC应用:
1.解决margin叠加问题
2.解决margin传递问题
3.解决浮动问题
4.解决覆盖问题
overflow:
hidden,溢出隐藏
scroll:强制出现滚动条
auto:内容超出则出现滚动条,不超出则不出现滚动条
7.响应式布局
媒体查询,实现响应式
@media screen 对打印模式不生效
and 且
eg: @media screen and (max-width:800px) and (min-width:600px){
div{
width:400px;
height:300px;
background-color:red;
}
}