<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>两栏布局title>
<style>
* {
margin: 0;
padding: 0;
}
/*窗口自适应*/
html,body {
width: 100%;
height: 100%;
}
/*左栏*/
.box1 {
width: 200px;
height: 100%;
background-color: pink;
float: left;
}
/*右栏*/
.box2 {
height: 100%;
background-color: yellow;
width: calc(100% - 200px);
float: left;
}
style>
head>
<body>
<div class="box1">div>
<div class="box2">div>
body>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>三栏布局title>
<style>
* {
margin: 0;
padding: 0;
}
html,body {
width: 100%;
height: 100%;
}
.left {
width: 200px;
height: 100%;
background-color: pink;
float: left;
}
.right {
width: 200px;
height: 100%;
background-color: yellow;
float: left;
}
.center {
width: calc(100% - 400px);
height: 100%;
background-color: green;
float: left;
}
style>
head>
<body>
<div class="left">div>
<div class="center">div>
<div class="right">div>
body>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>三栏布局title>
<style>
* {
margin: 0;
padding: 0;
}
html,body {
width: 100%;
height: 100%;
}
.header {
height: 100px;
background-color: pink;
}
.footer {
height: 100px;
background-color: green;
}
.body {
height: calc(100% - 200px);
}
.left {
width: 200px;
height: 100%;
float: left;
background-color: yellow;
}
.right {
width: 200px;
height: 100%;
float: left;
background-color: blue;
}
.center {
width: calc(100% - 400px);
height: 100%;
float: left;
background-color: red;
}
style>
head>
<body>
<div class="header">div>
<div class="body">
<div class="left">div>
<div class="center">div>
<div class="right">div>
div>
<div class="footer">div>
body>
适用于海报,文档,新闻等布局
属性名称 | 中文释义 | 备注 |
---|---|---|
column-count |
列数(默认列宽等分) | |
column-gap |
设置列间距 | |
column-rule |
设置列边框 | |
column-fill |
设置列高度 | balance :默认值,每个列均分auto :由左往右先把第一个列占满,依次往后 |
column-width |
调整列宽,可能会导致column-count 失效 |
|
column-span |
作用在子元素身上,横跨列 | none :不横跨列all :横跨所有列 |
break-inside |
设置折行 | avoid :禁止折行 |
margin:auto;
可以实现盒子水平和垂直居中100%
display:flex;
开启弹性盒布局flex-direction
设置主轴排列方式(重点,后面的属性都是围绕主轴去设置的)
row
主轴水平排列column
主轴垂直排列row-reverse
主轴水平反向排列column-reverse
主轴垂直反向排列justify-content
设置(主轴)的对齐方式
flex-start
按照默认对齐方式对齐(默认值)flex-end
按照默认对齐方式反方向对齐center
居中对齐(注意:这里是居主轴中间对齐)space-between
两端对齐,各子元素之间外边距平分space-around
各子元素之间平分间距,两端留各子元素间距的一半space-evenly
两端和各子元素之间平分间距align-items
设置(侧轴)的对齐方式
flex-start
按照默认对齐方式对齐(默认值)flex-end
按照默认对齐方式反方向对齐center
居中对齐(注意:这里是居测轴中间对齐)flex-wrap: wrap;
设置折行显示,弹性盒子默认不会折行显示,当子元素宽高总和超过弹性盒子的大小时,会压缩子元素盒子的大小align-content
设置折行的对齐方式(折行对齐方式参照的是副轴)
flex-start
紧贴对齐flex-end
与flex-start
对齐反向center
紧贴居中对齐(注意:这里是居测轴中间对齐)space-between
两端对齐,各子元素之间外边距平分space-around
各子元素之间平分间距,两端留各子元素间距的一半space-evenly
两端和各子元素之间平分间距align-self
单独设置子元素的侧轴对齐方式(注意:使用此对齐方式后,父元素设置的侧轴对齐方式都会失效,子元素盒子也不能做到默认在侧轴上沾满100%
)
flex-start
flex-end
center
flex
分配容器剩余空间的大小,按份数分配order
设置子元素的排列顺序,默认都是0
,值越大越往后,值越小越往前flex-shrink:0;
作用在子盒子生上, 弹性盒子默认情况下当子盒子的宽度和大于父盒子的时候,会挤压子盒子的宽度,在子盒子身上加以下属性可以设置子盒子不挤压网格布局必要条件:必须设置父盒子的宽高或者知道布局的行数与列数以及子盒子的宽高
属性名称 | 中文释义 | 备注 |
---|---|---|
display |
开启网格布局,当容器设置了网格布局,行内元素会转换为块级元素 | grid inline-grid |
grid-template-rows |
设置行布局 | 固定值方式 百分比方式 repeat 函数repeat 函数 auto-fill fr 片段minmax 函数auto |
grid-template-columns |
设置列布局 | |
grid-column-start |
起始列网格线 | 用于合并单元格,从上往下第一条线为1开始数 |
grid-column-end |
结束列网格线 | 用于合并单元格,从上往下第一条线为1开始数 |
grid-column |
合并单元格 | 相当于grid-column-start/grid-column-end |
grid-row-start |
合并单元格 | 起始列网格线,从左往右第一条线为1开始数 |
grid-row-end |
合并单元格 | 结束列网格线,从左往右第一条线为1开始数 |
grid-row |
合并单元格 | 相当于grid-row-start/grid-row-end |
row-gap |
单元格间距 | 设置横间距 |
column-gap |
单元格间距 | 设置列间距 |
gap |
单元格间距 | 相当于row-gap column-gap |
grid-template-areas |
合并单元格 | 设置单元格名称,当两个单元格名字一致的时候,表示合并这两个单元格,作用在父元素上,一般配合属性grid-area 使用(注意:单元格合并不能合并成不规则的图形,只能合并成矩形或者正方形) |
grid-area |
合并单元格 | 设置子元素所占据的单元格的名称,作用在子元素上,一般配合属性grid-template-areas 使用 |
grid-auto-flow |
单元格的对齐方式 | 设置主轴row 水平主轴column 垂直主轴 |
justify-content |
单元格的对齐方式 | 主轴对齐方式flex-start :按照默认对齐方式对齐(默认值)flex-end :按照默认对齐方式反方向对齐center :居中对齐(注意:这里是居主轴中间对齐)space-between :两端对齐,各子元素之间外边距平分space-around :各子元素之间平分间距,两端留各子元素间距的一半space-evenly :两端和各子元素之间平分间距stretch :在子元素不设置宽高的情况下,使得子元素平均分配铺满整个容器 |
align-content |
单元格的对齐方式 | 侧轴对齐方式 |
place-content |
单元格的对齐方式 | 相当于justify-content align-content |
justify-items |
单元格内部内容的对齐方式 | 水平对齐方式 |
align-items |
单元格内部内容的对齐方式 | 垂直对齐方式 |
place-items |
单元格内部内容的对齐方式 | 相当于justify-items align-items |
flex
布局不同)repeat
函数
auto-fill
(根据容器的大小和参数2的大小去自动计算重复次数,不会溢出盒子之外,只有可能不能铺满容器)fr
片段,相当于flex:1
,但是fr
是设置在容器上的,而flex:1
是设置在项目上的minmax
函数,根据【剩余空间大小】和【最大最小值】确定大小
auto
em
相对于父盒子的字体大小rem
相对于根元素的盒子的字体大小,即root-em
,简称rem
vw
:view-width
:可视窗口的宽度单位,100vw
就是整个可视窗口的宽度vh
:view-height
:可视窗口的高度单位,100vh
就是整个可视窗口的高度vw
和vh
单位替换rem
布局中的js
代码,设置基础的font-size
的值vw
和100%
的区别
vw
:是包含滚动条的,因为滚动条也属于可视区域100%
不包含滚动条,剩余空间沾满