1.响应式
- 响应式页面,可以适配多个设备(PC、移动),缺点就是要做太多兼容问题
1.1设备屏幕大小一般尺寸
划分设备 | 尺寸区间 |
---|---|
超小屏幕(手机) | 768px以下 |
小屏设备 | 768px-992px |
中等屏幕 | 992px-1200px |
宽屏设备 | 1200px以上 |
1.2响应式容器尺寸的划分
@media screen and (max-width: 768px){
.container{
width: 100%;
}
}
@media screen and (min-width: 768px) and (max-width: 992px){
.container{
width: 750px;
}
}
@media screen and (min-width: 992px) and (max-width: 1200px){
.container{
width: 970px;
}
}
@media screen and (min-width: 1200px){
.container{
width: 1170px;
}
}
2.什么是媒体查询
一个网页,需要在不同设备上都能正常显示,可以利用媒体查询的方式,检测不同设备,设置不同的CSS代码实现。
2.1媒体类型
all (所有的设备)
- print (打印设备)
-
2.2语法
/*320px - 无限大*/ @media only screen and (min-width:320px ) { .box { width: 100px; height: 100px; } } /*0 - 640px*/ @media only screen and (max-width:640px ) { .box { width: 200px; height: 200px; } } /*400px - 600px 之间*/ @media only screen and (min-width: 400px) and (max-width: 600px) { .box { width: 300px; height: 300px; } } /*竖屏*/ @media screen and (orientation:portrait) {} /*横屏*/ @media screen and (orientation:landscape) {}
2.3媒体查询引入不同css文件
案例:屏幕大于640px时,一行显示两个div。小于640px时,一行显示一个div
<link rel="stylesheet" href="01.css" media="screen and (min-width:320px)"> <link rel="stylesheet" href="01.css" media="screen and (min-width:640px)">
3.媒体查询改变html字体大小思路
- 按照一定的比例设置更多设备的HTML字体大小
- 1.假设设计稿是750px
- 2.假设这个时候html字体大小为100px
- 3.那么在320px设备的时候 字体大小为 100/750*320
- 4.只要根据这个比例在不同设备设置rem基准值(html字体大小)即可
@media (min-width: 320px) { html { font-size: 42.66666667px; } } @media (min-width: 360px) { html { font-size: 48px; } } @media (min-width: 375px) { html { font-size: 50px; } } @media (min-width: 384px) { html { font-size: 51.2px; } } @media (min-width: 400px) { html { font-size: 53.33333333px; } } @media (min-width: 411px) { html { font-size: 54.8px; } } @media (min-width: 414px) { html { font-size: 55.2px; } } @media (min-width: 468px) { html { font-size: 62.4px; } } @media (min-width: 480px) { html { font-size: 64px; } } @media (min-width: 540px) { html { font-size: 72px; } } @media (min-width: 600px) { html { font-size: 80px; } } @media (min-width: 640px) { html { font-size: 85.33333333px; } } @media (min-width: 720px) { html { font-size: 96px; } } @media (min-width: 750px) { html { font-size: 100px; } }
4.上面的方法与rem适配
- rem的基准是相对于html元素的字体大小的倍数,em是父元素字体大小的倍数
- 使用媒体查询根据不同设备按比例设置html的字体大小,然后页面元素使用rem做尺寸单位,当html字体大小变化元素尺寸也会发生变化,从而达到等比缩放的适配。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0 ,user-scalable=no"> <!-- 把上面的css样式引入进来 --> <link /> <title></title> <style> body{ margin: 0; } .header{ height: 1rem; width: 100%; line-height: 1rem; text-align: center; font-size: 0.48rem; color: #fff; background: green; } </style> </head> <body> <div class="header">购物车</div> </body> </html>