每一个设备的宽度都是不一样的。
```
解决:
1. 把视觉稿中的px转换成rem
2. 使用栅格系统
3. 使用flexible(将页面分为100份,每一份为一个单位a,1rem=10a,1a=7.5px,1rem=75px
```
### **概念:**
### **一、两种像素**
1、物理像素(设备像素,device pixels)
指的是设备屏幕的物理像素,任何设备的物理像素数量都是固定的。
2、CSS 像素(CSS pixels)
### **二、三种视口**
#### **1、布局视口**
布局视口的**宽度/高度**可以通过`document.documentElement.clientWidth / Height`获取。
默认的布局视口宽度为 980px
#### **2、视觉视口(设备宽度)**
`screen.availWidth;`
#### **3、理想视口**
即是布局视口的宽度等于设备独立像素;通过`<meta name="viewport" content="width=device-width"/>`
#### **3.1、完美视口**
`<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no,minimum-scale=1.0,maximum-scale=1.0"/>
`
**width=device-width**:设置布局视口的大小等于设备独立像素;
**initial-scale=1.0**:设置布局视口和视觉视口的大小等于设备独立像素;
**user-scalable=no**:不允许用户进行缩放;
**minimum-scale和maximum-scale** 分别这只最小的缩放为1.0,最大的缩放为1.0,表示不允许用户进行缩放操作。
### **三、设备像素比**
`window.devicePixelRatio`
### **四、设备独立像素**

- HTML,CSS
- 如何书写高效的css样式
- box-shadow
- 表格合并行列
- 自适应单位
- 隐藏元素
- 浏览器缓存
- 浏览器内核
- css和js的合理走位
- 2021样式问题汇总
- 模拟面试
- 移动端适配问题
- flexible(rem)
- vw+rem
- 判断一个属性是对象的私有属性
- px rpx em rem vw
- 清除浮动
- 栅格系统
- get&&post
- 雪碧图
- new操作符
- call apply bind区别
- 前端模块化
- 回调函数
- 回调地狱(封装版)
- 回调地狱(promise)
- 回调地狱(generator)
- 回调地狱(async)
- es6新特性
- let
- 箭头函数
- 展开 解构 默认赋值
- vue生命周期
- axios封装
- axios跨域拿数据
- ajax封装
- JavaScript
- 数组
- 排序
- 取偶数
- 反转排序
- 取最大值
- 数组去重
- 复杂版
- 数组的克隆(深拷贝)的方法
- 求质数
- 原型和原型链
- 创建对象
- 什么是路由
- SASS
- jQuery中的append和prepend区别?
- css动画及js动画的区别
- 隐式类型转换
- 原型
- 事件传播
- 函数
- 增加属性
- 构造函数
- 一元操作符
- 作用域
- 短语
- Vue
- - nextTick
- 自我介绍
- 哦豁(;д;)
- for in效果
- 事件
- promise特点
- 如何实现一个ajax请求
- 媒体查询
- substr和substring
- MVC、MVVM
- 面向对象
- 取数据、渲染数据
- ajax
- vue
- React
- es6-class
- 几种类型的DOM节点
- js同源策略
- 闭包
- 2021
- 数据类型
- 闭包2
- 防抖节流
- 原型与原型链
- call与apply与bind
- 深浅拷贝
- New关键字
