web前端之移动端:知识汇
一、响应式布局:
// Extra small devices (portrait phones, less than 576px)
// No media query for `xs` since this is the default in Bootstrap
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }
// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }
// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }
// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }
二、移动端适配
移动设计图: 640px,iopne6: 750px
PC屏: 1240px, 960px
概念:
屏幕尺寸: 屏幕对角线(英寸)
屏幕分辩率: 物理像素(像素点) 1024*1980 px
- 1px: 1横向像素 * 1纵向像素
- 就是卖手机标注的屏幕像素
屏幕像素密度(PPI): 一英寸内的拥有的像素
设备独立像素:
是一种可以被程序所控制的虚拟像素,在Web开发中对应CSS像素
- 占满屏幕的虚拟的开发像素
像素比: 物理像素/设备独立像素
2.1 为什么适配:
像素:
位图像素: 图片的像素
- 当位图像素 = 物理像素才能完美显示
视口:
**视觉视口: **(就是文档的实际在浏览器中的大小)
- 就是html元素
- 随用户的缩放改变,即网页开发配置的尺寸被改变
- 网站设计稿,是小于等于视觉视口的
布局视口:(设备出厂定好了, 不能改变, 就是屏幕大小,不是屏幕分辩率)
- 浏览器默认的不出现滚动条的屏幕大小,所以,在移动端, 网页设计尺寸, 不超过布局视口就不出现滚动条,(即配置的视觉视口大于布局视口)
- 滚动条只于布局视口有关
- 移动端要保证, 视觉视口 = 布局视口 , 才能完整网页
<meta name='viewport' width = 'device-width'/>
// 布局视口等于视觉视口
- width = 'device-width' 这个相当于移动端的协议,必须签, 不签的话, 调式工具的
像素比, 就会出错 ; 签了才是DPR=2, 或者DPR=3; - pc端viewport无效
**理想视口: **
- 签了协议的视口
获取视口的方法:
PC: 只有一个视口
document.docmentElenment.clientWidth (不包空滚动条)
window.inderWidth = 包括滚动条
screen.width = 分辨率
完美视口:
<meta name='viewport' width = 'device-width, inition-scale=1.0'/>
移动端:
document.docmentElenment.clientwidth = 布局视口
window.inderWidth = 视觉视口(不用,兼容不好)
screen.width = 布局视口/或理想视口(不用)
缩放:
用户缩放
PC: 会影响视觉视口,布局视口
移动端: 会影响视觉视口, 不影响布局视口
系统缩放
改变理想视口,做缩放
旋转:
完美视口,能解决旋转兼容问题
图片:(设计 位图像素 == 物理像素(分辨率))
锐化: 图片缩小
失真: 图片放大
**适配: ** 不同设备等比还原设计图
1、rem适配:
- 改变了一个元素在不同设备上占据的css像素的个数
- html的高宽==视觉视口,width,height,只读;用户缩放会影响
rem基于html的fontSize的大小; 所以所设计图与html的font-size进行等比
(function(){
var styleNode = document.createElement('style')
var htmlW = document.documenElement.clientWidth / 16 //将视觉视口分成16份
styleNode.innerHtml = `html{font-size:${htmlW} !important}` // 利用css才有!imporant属性, 将根字体固定,防止误改
document.head.appendChild(styleNode)
})()
- 利用css才有!imporant属性, 将根字体固定,防止误改
**优点 : ** 没有破坏完美视口
**缺点: ** px到rem太复杂
2、viewport适配
- 改变视觉视口的大小, html的宽度, 使之等于设计图
- 不同设备css像素一样, 视觉视口缩放不一样
(function(targetWidth){
let targetWidth = 640;
var scale = documentElement.clientWidth/targetWidth
var meta = document.querySelector(meta[name='viewport'])
meta.content = `initial-scale=${scale},minimum-scale=${scale},maximum-scale=${scale}, user-scaleble=no`
})()
优点: 所量即所得
缺点: 没有实现完美视口
3、 百分比适配(页面简单可以)
4、vw方案
- vw也是一个相对单位,它相对的是布局视口,1vw就是1%的布局视口宽度。
5、flexible, 是查询屏幕,生成font-size的大小, 所以在不需要适配的时候, 还是要@media 做限定
**一物理像素: **
1、 图片做border线
2、meta标签:
- rem适配+scale缩放,border用px(taobao方案)
- 这样会改变,适配, 不推荐
3、css3属性;
- @media + transform: scale(1/dpr)缩放 (主流:)
4、box-shadow:
- -webkit-box-shadow:0 1px 1px -1px rgba(0, 0, 0, 0.5);
web前端之移动端:知识汇的更多相关文章
- web前端篇:html基础知识
目录 1.web前端: 2.HTML概述 2.1HTML介绍 2.2HTML在计算机中如何表现 3.HTML基础语法 4.练习题: 1.web前端: 什么是web? web 就是网页,是一种基于B/S ...
- Web前端上万字的知识总结
下面是自己学HTML+DIV+CSS+JS时的学习笔记,给大家分享以下,相互学习.大二时候寒假在家无聊的时候想做点事,总结了一下web前端基础的东西,下面的每个字都是自己手敲的. 1.<html ...
- Web前端入门必学知识
入门主要有三个部分 一.html+css部分: 1.前端的入门门槛极低,体现在HTML和CSS上运行环境就是浏览器,html+css这部分特别简单,网上搜资料,书籍视频非常多.css中盒 ...
- 初学者入门web前端:C#基础知识:函数
入行前端对函数的掌握程度有可能直接影响以后工作的效率,使用函数可以高效的编写编码,节省时间,所以我整理了C#中最基础的函数知识点,虽然我在学习中 遇到很多问题,但是只要能够解决这些问题,都是好的. 一 ...
- 【web前端】移动端控制台插件,手机端页面查看相关页面控制台信息
一般调试手机端页面时,基本是在PC端使用手机模式进行断点或console调试.或查看有用的控制台信息的,但依旧有部分功能无法在PC端调试,经常需要使用alert进行断点,然后在手机端看效果,但是这样并 ...
- web前端之浏览器: 知识汇总
一.URL到页面 准备阶段: 输入URL,Enter进入查找 浏览器在本地查找host文件,匹配对应的IP: 找到返回浏览器并缓存 没有,则进入路由查找: 找到返回浏览器并缓存 再没有,再进入公网DN ...
- web前端之html基础知识初级
html 基础标签 单标签 1.注释标签: ctrl+/ 换行标签: 横线标签: 标题标签: 段落标签: 表示强调标签: 文字 属性:文字加颜色 color:改变文字颜色 size:改文字大小属性 例 ...
- 100本最棒的web前端图书推荐
前端技术,要学习的内容太多了,当你不知道从哪里开始的时候,你就先从看书开始,边看书边码代码,这个是学习编程必须的过程,因为你看一百遍,还不如自己写一遍,写一遍,第一可以加印象,第二便于更好的理解. 熟 ...
- [转] Web前端开发工程师常用技术网站整理
1.常用工具相关 有道云笔记 http://note.youdao.com/signIn/index.html 36镇-最好用的共享收藏夹 http://www.36zhen.com/ 浏览器同步测试 ...
随机推荐
- 洛谷P1582 倒水 二进制 lowbit __builtin_popcount
P1582 倒水:https://www.luogu.org/problemnew/show/P1582 题意: 给定n瓶装有1升的水瓶,每次可以把两瓶装水量相同的水和成一瓶,问最少还要增加几瓶装有1 ...
- 什么是Werkzeug
上一节介绍了什么是WSGI,这一节我们看看Werkzeug 按照官方的说法,Werkzeug(源自德语,工具的意思)是一个WSGI工具库,它开始于一个适用于WSGI的多样化的工具集,后来发展成了现在非 ...
- springboot的最简创建方式
springboot是目前比较流行的技术栈之一,我在这里写一个springboot工程最简方式 首先开发工具是IDEA,双击打开IDEA,点击Create new Project 进入到这个页面,选择 ...
- springmvc全局异常后返回JSON异常数据
转自:http://www.cnblogs.com/exmyth/p/5601288.html (1)自定义或者使用spring自带的各种异常处理器 例如spring基于注解的异常解析器Annotat ...
- 小白学Python-S3-day04-用户信息的增删改查、变更权限
一.用户信息 文件中每一行就是用户的详细信息,每一行是按照冒号为分隔符分成七段 第一段用户名,第二段密码占位符,第三段UID,第四段GID,第五段是描述信息,第六段是家目录.第七段是 是否 可以登录操 ...
- [整理] jQuery插件开发
1.类级别的插件开发 类级别的插件开发,可似为给jQuery类添加方法,调用方式:$.你的方法(),如:$.ajax() 函数. 1.1.给jQuery类添加方法 $.alertMsg = funct ...
- android 和h5互调步骤
1. Android 中调用JS 假如:H5页面中有一段如下JS代码 function h5Test(str){ xxxx... xxxx... } Android中调用方式如下: 步骤一: 启动支持 ...
- MySql(二)_NHibernateHelper管理会话工厂
1.定义接口的好处: (1) 清楚的看到里面有哪些方法: ( 2 ) 可以更换实现类:Nhibernate实现件可以更换: Manger文件夹(另外两个是Model.Mappings文件夹) 首先M ...
- JAVA父类的静态方法能否被子类重写?
静态: 在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在实例化之前这个方法就已经存在于内存,跟类的对象没什么关系.子类中如果定义了相同名称的静态方法,并不会重写,而应 ...
- Java反序列化漏洞原理解析(案例未完善后续补充)
序列化与反序列化 序列化用途:方便于对象在网络中的传输和存储 java的反序列化 序列化就是将对象转换为流,利于储存和传输的格式 反序列化与序列化相反,将流转换为对象 例如:json序列化.XML序列 ...