viewport(视口)

  1. 具体数值(不设置时默认为980 ,部分安卓手机不支持设置成具体数值)
  2. width=device-width 和设备宽度保持一致
  3. user-scalable=no 是否允许用户缩放no/yes(iOS10不支持 近乎无解)
  4. initial-scale 初始缩放比例
  5. minimum-scale 最小缩放比例
  6. maximum-scale 最大缩放比例

页面宽度

页面宽度=device-width/scale

在页面中实现等比像素的JS代码:

<!--利用页面的像素比来进行页面的缩放 显示等比像素 但每个设备不是相同宽度-->
<script type="text/javascript">
(function(){
var meta = document.createElement("meta");
var scale = 1/window.devicePixelRatio;
meta.name = "viewport";
meta.content = "initial-scale="+scale+",minimum-scale="+scale+",maximum-scale="+scale;
document.head.appendChild(meta);
})();
</script>

在页面中实现相同宽度显示的JS代码:

<!--页面宽度适配 显示相同宽度 但每个设备所显示的像素大小不一样-->
<script type="text/javascript">
(function(){
var meta = document.createElement("meta");
var width = window.screen.width;
var targetWidth = 320;
var scale = width/targetWidth;
meta.name = "viewport";
meta.content = "initial-scale="+scale+",minimum-scale="+scale+",maximum-scale="+scale;
document.head.appendChild(meta); })();
</script>

window.devicePixelRatio 像素比

[不可改变,只能获取]

1px的内容放大N倍显示

[像素比为2 整个页面的内容就被放大两倍显示]

分辨率:屏幕图像的精密度,是指显示器所能显示的点数的多少

分辨率越高,像素越大,在相同宽度下,屏幕所能显示出来的东西越多,但是显示出来就越小。

移动端布局

  • 1em=当前元素的一个文字大小
  • rem(root em) 1rem=html的一个文字大小
  • [rem布局原理简单的来说就是把页面虚拟成一个网格,每行的格子的大小都是一致的,每行的格子也是固定的,我们在设置元素的尺寸的时候,不在固定使用PX,而是设置占了多少格格子,然后在根据页面宽度的不同,来修改每个格子的大小,从而使页面等比的缩放. ]
  • 通过js获取页面的宽度
<script type="text/javascript">
(function(){
var html = document.documentElement;//获取到HTML
var width = html.clientWidth// 获取html的宽度
//html.style.fontSize html的字体大小
html.style.fontSize = width/10 + "px";
//console.log(width);
// 1rem = 1个格子的大小
})();
</script>
  • [ 使用rem时,注意页面接受的最小字体是12px,所以一般不会分超过25个格子,一般要适配最小的宽度是320 ]

移动端布局的一些设置(在viewport里设置使页面显示相同宽度,显示相同像素大小)的更多相关文章

  1. 在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问

    补充资料 本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许19 ...

  2. 移动端布局基础viewport

    划重点 手机屏幕相对着桌面浏览器小,传统网页的设计在手机上体验糟糕 Apple 在移动版 Safari 中定义了 viewport meta 标签(如果没记错最早提出的话),用于创建一个虚拟窗口(la ...

  3. 移动端布局,C3新增属性

    <html5拖拽> 1.给元素设置 draggable="true" 属性,这个元素就可以被拖拽了 <拖拽元素事件> 2.ondragstart 拖拽前触发 ...

  4. 如何做好移动端的响应式设计:Viewport控制

    新人翻译,欢迎转载~ 英文原文地址:http://bitsofco.de/2015/respove-design-viewport/ 原文例程地址:https://github.com/ireade/ ...

  5. 移动端布局Demo展示图文

    上两张图自勉一下(来自刘墉先生的文章,最近看他的作品):然后移动端该愈来愈受到重视,未来的市场我不知道,不过我知道手机的功能越来越强大是不争的事实!移动端布局的积累也需要从现在做起! 需求一:实现下图 ...

  6. web移动端布局方式整理

    写H5页面一直写的有点随意,只是保证了页面在各个屏幕下显示良好,却没有保证到在各个屏幕下是等比例放大或者缩小.这些天在写一些页面,试着看看能不能写出等比例放大缩小的页面,发现不容易啊,在网上找了一些文 ...

  7. 移动端布局 - REM方式

    默认以宽度为640px的设计稿为基准页面,然后通过JS获取当前显示设备的尺寸,对应的调整 html 标签的font-size大小,从而实现通过以rem为单位的移动端布局适配. 具体代码 (functi ...

  8. Vuex里的module选项和移动端布局

    Vuex里的modules 在store文件夹里创建一个modules的文件夹,里面随意创建一个.js文件,然后export输出

  9. 页面自适应<meta name="viewport">标签设置

    viewport: 它在页面中设置,是应对手机模式访问网站.网页对屏幕而做的一些设置.通常手机浏览器打开页面后,会把页面放在一个虚拟的“窗 口”–这个比窗口大,也就是你常发现页面可以进行拖动.放大放小 ...

随机推荐

  1. java传参问题

    参考链接:https://www.cnblogs.com/linkstar/p/5951141.html public class Example { String testString = publ ...

  2. c++动态数组的使用

    在c++中,有的时候会遇到变长的数组(不管是一维的还是二维的),这个时候就需要用到动态数组了,并且要用new和delete两个操作符,这俩操作符一般成对使用. 先说一维的动态数组吧,直接上代码 #in ...

  3. hash算法解决冲突的方案

    1, 开放定址法: 所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入 公式为:fi(key) = (f(key)+di) MOD m ...

  4. 以命令行界面启动 Ubuntu

    1. /etc/default/grub 将GRUB_CMDLINE_LINUX_DEFAULT一行中改为"quiet splash 3" 2. update-grub 3. 重启

  5. Zabbix CPU utilization监控参数

    工作中查看Zabbix linux 监控项的时候对linux 监控的cpu使用的各个参数没怎么明白,特意查看了下资料 Zabbix linux模板下的CPU utilization是自带的监控Linu ...

  6. 理解分布式一致性:Paxos协议之Multi-Paxos

    理解分布式一致性:Paxos协议之Multi-Paxos Multi-Paxos without failures Multi-Paxos when phase 1 can be skipped Mu ...

  7. 实战-MySQL定时增量备份(2)

    概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后,我们的数据是相当重要的,容不得半点闪失,应该做好万全的准备,搞不好哪一天被黑客入侵或者恶意删除,那就 gg 了.所以要对我们的线上数 ...

  8. CodeForces - 140A New Year Table (几何题)当时没想出来-----补题

    A. New Year Table time limit per test2 seconds memory limit per test256 megabytes inputstandard inpu ...

  9. MySQL 中 on与where筛选条件的区别

    在两张表连接的时候才会有on的筛选条件,那么on和where的区别是什么呢? 在inner join中是没有区别的,但是在左连接和右连接中,区别就体现出来了,下面以左连接为例: 1.用on的时候,只对 ...

  10. Java中常用的获取从当前月开始的前第i个月、取结束时间与开始时间相差多少个月份等的方法

    @RunWith(SpringRunner.class) @SpringBootTest public class DateTest { @Test public void test(){ DateF ...