1. 响应式
1.1. 什么是"响应式"?
全称 responsive web page, 响应式网页 / 自适应网页
即一个页面即可以在 PC 浏览器中浏览, 也可以在移动终端( 手机 / pad )中浏览, 并且可以配合不同的设备, 有不同的响应结果( 布局不同 )
- 响应式网页的特点: 1. 页面上的图片和文字要随着屏幕尺寸发生改变 2. 页面的布局要随着屏幕尺寸而发生变化
1.2. 如何测试响应式网页
- 使用真实物理设备
- 优势: 测试结果真实可靠
- 不足: 设备太多, 成本太大, 测试任务量大
- 方式: 1. 搭建局域网, 搭建本地服务器, 部署项目 2. 让移动终端与服务器接入相同网络即可访问
- 使用第三方模拟设备( 模拟器 )
- 优势: 不需要更多的物理设备
- 不足: 效率偏低
- 使用浏览器自带的设备模拟器(
Emulator)- 优势: 功能丰富
- 不足: 与真实的物理设备会稍有偏差
1.3. 视口 - Viewport
-
视口: 由
IOS中的Safari所引入的一个概念, 在移动设备中有效, 浏览器里显示网页的一块区域( PC 端会自动忽略 ) -
注意: 在开发响应式网页时, 需要自己指定视口的数据
- 视口的宽度: 要与设备的宽度一致
- 视口的初始化缩放倍率: 原始比例
- 视口手动缩放大小: 不允许手动缩放
-
在 HTML 中指定视口的信息:
<mate name="viewport" content="width=device-width, initial-scale=1,user-scalable=no" />以上代码, 移动端必备
1.4. 如何编写响应式网页
-
必须声明视
-
文字要使用相对尺寸(
em,rem), 尽量不要使用绝对尺寸(px,pt)em: 父元素字体大小的倍数rem: 根元素(html)字体大小的倍数
-
容器元素使用相对尺寸(
%,auto), 尽量不用绝对尺寸(px) -
图片使用相对尺寸(
%,auto), 尽量不同绝对尺寸(px)img{ width: 50px; /* 不推荐 */ width: 50%; /* 推荐使用, 占据父容器宽度的占比, 可以无限缩放 */ max-width: 50%; /* 推荐使用, 占据父容器宽度的占比, 最大不能超过图像原始大小 */ } -
页面元素尽量使用流式布局
- 流式布局特点: 1. 元素默认都是靠向容器的左上方 2. 横向排列,排列不下则换行
- 方法:
float,display: inline-block;,display: flex;
-
响应式网页使用
CSS3 media query技术-
CSS3 media query:CSS3媒体查询 -
作用: 可以根据不同的媒体类型以及特性去执行不同的
CSSEx: 1. 浏览器宽度小于 768 像素时, 背景色: 红色- 浏览器宽度大于 768 但小于 991 之间, 背景色: 绿色
-
语法: 在样式表中, 通过
@media规则声明-
@media MEDIA-TYPE and | not | only ( MEDIA-FEATURE ):MEDIA-TYPE: 媒体类型- 取值: 1.
all: 默认值 所有设备 2.screen: 电脑屏幕, 智能手机, 平板电脑 3.tv: 电视设备
- 取值: 1.
MEDIA-FEATURE: 媒体特性- 取值: 1.
width: 判断是否为指定浏览器窗口大小
min-width: 判断浏览器窗口宽度的最小值max-width: 判断浏览器窗口宽度的最大值
- 取值: 1.
-
判断多媒体特性:
@media MEDIA-TYPE and | not | only (MEDIA-FEATURE) and|not|only (MEDIA-FEATURE)@media screen and (min-width: 768px) and (max-width: 991px){ 样式规则1{} 样式规则2{} }- 媒体类型必须是屏幕类型( PC, pad, phone )并且, 浏览器最小宽度( 视口 )为 768, 并且最大为 991 时, 执行
CSS
- 媒体类型必须是屏幕类型( PC, pad, phone )并且, 浏览器最小宽度( 视口 )为 768, 并且最大为 991 时, 执行
-
@media的用法:-
选择执行
CSS内容-
在样式表中:
@media screen and (min-width: 768px){ 样式规则{} } -
注意:
and与媒体特征之间必须有空格, 否则效果不会出来
-
-
选择性的执行某个外部
CSS文件:<link rel="stylesheet" href="" media="MEDIA-TYPE and | not | only (MEDIA-FEATURE)" /><link rel="stylesheet" href="url" media="screen and (min-width: 768px)" />-
注意: 即使不满足当前设备条件的
CSS文件也会被请求, 但不会生效( 不会被执行 )
-
-
-
-