https://www.jianshu.com/p/f60a4d859c15
1、视口配置viewport
| 1
 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
 | 
2、应用
- 响应式布局核心: @media
- 响应式布局的常用尺寸
- 超小屏幕:(手机,小于768px)
- 小屏幕:(平板,大于等于768px)
- 中等屏幕:(桌面显示器,大于等于992px)
- 大屏幕:(大桌面显示器,大于等于1200px)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 
 | <!DOCTYPE html><html lang="zh-cn">
 <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>Document</title>
 <style>
 @media (min-width: 1200px) {
 
 }
 
 @media (min-width: 768px) and (max-width: 979px) {
 
 }
 
 @media (max-width: 767px) {
 
 }
 
 @media (max-width: 480px) {
 
 }
 
 
 body {
 background-color: pink;
 }
 
 @media screen and (min-width: 480px) {
 body {
 background-color: lightgreen;
 }
 }
 </style>
 </head>
 <body>
 <h1>请调整浏览器窗口大小来查看效果!</h1>
 <p>此媒体查询值应用于:媒体类型为 screen,且视口为 480px 或更宽。</p>
 </body>
 </html>
 
 | 
(二)CSS布局
1、静态布局
静态布局就是每一个元素都用px写死。这种布局方法毫无疑问是最简单(因为不用考虑不同分辨率的情况),同时也是最糟糕的。
2、流式布局
流式布局就是大部分元素高度用px写死,然后宽度用百分比布局。
3、圣杯布局
圣杯布局:
- 一个容器container包裹着左left、中center、右right三个盒子,中间center盒子写在前面,并且把它宽度设置为100%;
- center、left、right三个盒子均设置成左浮动,再设置left的左边的外边距margin为center宽度的负值-100%,left移动至center最左边;
- 将right的左边的外边距margin设置为本身宽度的负值-xxpx;right移动至center最右边;
- 将center左右两边的外边距margin或内边距padding设置为left和right两个盒子宽度,center随之缩小宽度;
- 最后设置left、right为相对位置,left左边left的值设置为本身宽度的负值,right右边right的值设置为本身的宽度。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 
 | <!DOCTYPE html><html lang="zh-cn">
 <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>Document</title>
 <style>
 *{
 margin: 0;
 padding: 0;
 
 }
 .container{
 margin: 0 300px;
 
 }
 .container .left,.center,.right{
 height: 300px;
 float: left;
 position: relative;
 }
 .container .center{
 width: 100%;
 background-color: aqua;
 }
 .container .left{
 width: 300px;
 margin-left: -100%;
 background-color: gold;
 
 left: -300px;
 }
 .container .right{
 width: 300px;
 margin-left: -300px;
 background-color: rgb(13, 184, 70);
 
 right: -300px;
 }
 </style>
 </head>
 <body>
 <div class="container">
 <div class="center">center</div>
 <div class="left">left</div>
 <div class="right">right</div>
 </div>
 </body>
 </html>
 
 | 
4、双飞翼布局
双飞翼布局:
- 一个容器container包裹着左left、右right、和另一个main盒子,而main盒子里再包一个center盒子,把main写在left和right前面,且宽度设置为100%;
- main、left、right三个盒子均设置成左浮动,再设置left的左边的外边距为main宽度的负值-100%,然后设置right的左边的外边距为本身的-xxpx;
- 最后设置main里面的center的margin或padding的左右两边为left和right的值。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 
 | <!DOCTYPE html><html lang="en">
 <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>Document</title>
 <style>
 *{
 margin: 0;
 padding: 0;
 
 }
 .container{
 
 }
 .container .main{
 width: 100%;
 height: 300px;
 background-color: aqua;
 float: left;
 }
 .container .main .center{
 
 margin: 0 300px;
 }
 .container .left,.right{
 width: 300px;
 height: 300px;
 float: left;
 }
 .container .left{
 background-color: rgb(139, 73, 201);
 margin-left: -100%;
 }
 .container .right{
 background-color: rgb(145, 207, 52);
 margin-left: -300px;
 }
 </style>
 </head>
 <body>
 <div class="container">
 <div class="main">
 <div class="center">center</div>
 </div>
 <div class="left">left</div>
 <div class="right">right</div>
 </div>
 </body>
 </html>
 
 | 
5、网格布局
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 
 | <!DOCTYPE html>
 <html lang="en">
 <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>Document</title>
 <style>
 * {
 margin: 0;
 padding: 0;
 }
 .box {
 display: grid;
 grid-template-columns: 1fr 1fr 1fr 1fr;
 grid-template-rows: 1fr 1fr;
 background-color: #e8e8e8;
 padding: 10px;
 border: 1px solid red;
 }
 p {
 background-color: #fff;
 border: 1px solid blue;
 height: 50px;
 }
 </style>
 </head>
 <body>
 <div class="box">
 <p> aaa </p>
 <p> aaa </p>
 <p> aaa </p>
 <p> aaa </p>
 <p> aaa </p>
 <p> aaa </p>
 <p> aaa </p>
 <p> aaa </p>
 </div>
 </body>
 </html>
 
 |