metaviewport设置移动端自适应

codewhy codewhy     2022-12-05     319

关键词:

1、viewport

移动设备上的viewport是设备屏幕上用来显示网页的那部分区域,再具体一点就是浏览器上用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域大,也可能比浏览器的可视区域小。在默认情况下,移动设备上的viewport都是大于浏览器可视区域的,这是因为移动设备的分辨率相对于PC来说都比较小,所以为了能在移动设备上正常显示那些为PC浏览器设计的网站,移动设备上的浏览器都会把自己默认的viewport设为980px或1024px(也可能是其它值,由设备本身决定),但后果是浏览器出现横向滚动条,因为浏览器可视区域的宽度比默认的viewport的宽度小。

 

2、3个viewport

(1)layout viewport

如果把移动设备上浏览器的可视区域设为viewport的话,某些网站会因为viewport太窄而显示错乱,所以这些浏览器就默认会把viewport设为一个较宽的值,比如980px,使得即使是那些为PC浏览器设计的网站也能在移动设备浏览器上正常显示。这个浏览器默认的viewport叫做 layout viewport。layout viewport的宽度可以通过 document.documentElement.clientWidth来获取。

(2)visual viewport

layout viewport的宽度是大于浏览器可视区域的宽度的,所以还需要一个viewport来代表浏览器可视区域的大小,这个viewport叫做 visual viewport。visual viewport的宽度可以通过 document.documentElement.innerWidth来获取。

(3)ideal viewport

ideal viewport是一个能完美适配移动设备的viewport。首先,不需要缩放和横向滚动条就能正常查看网站的所有内容;其次,显示的文字、图片大小合适,如14px的文字不会因为在一个高密度像素的屏幕里显示得太小而无法看清,无论是在何种密度屏幕,何种分辨率下,显示出来的大小都差不多。这个viewport叫做 ideal viewport。

ideal viewport并没有一个固定的尺寸,不同的设备有不同的ideal viewport。例如,所有的iphone的ideal viewport宽度都是320px,无论它的屏幕宽度是320还是640。

ideal viewport 的意义在于,无论在何种分辨率的屏幕下,针对ideal viewport 而设计的网站,不需要缩放和横向滚动条都可以完美地呈现给用户。

 

3、利用meta标签对viewport进行控制

移动设备默认的viewport是layout viewport,,但在进行移动设备网站的开发时,需要的是ideal viewport。要得到ideal viewport,需要用到meta标签。

head标签中加入:


<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。当然maximum-scale=1.0, user-scalable=0不是必需的,是否允许用户手动播放根据网站的需求来定,但把width设为width-device基本是必须的,这样能保证不会出现横向滚动条。

meta viewport 的6个属性:


width  设置layout viewport 的宽度,为一个正整数,或字符串"width-device"
initial-scale  设置页面的初始缩放值,为一个数字,可以带小数
minimum-scale  允许用户的最小缩放值,为一个数字,可以带小数
maximum-scale 允许用户的最大缩放值,为一个数字,可以带小数
 height  设置layout viewport 的高度,这个属性并不重要,很少使用
user-scalable  是否允许用户进行缩放,值为"no"或"yes", no 代表不允许,yes代表允许

width能控制layout viewport的宽度,如果不指定该属性,layout viewport将默认为980px或1024px(也可能是其它值,由设备本身决定),如果把layout viewport的宽度设置为移动设备的宽度,那么layout viewport将成为ideal viewport。

其实,要把当前的viewport宽度设为ideal viewport的宽度,既可以设置width=device-width,也可以设置initial-scale=1,但有一个小缺陷,就是width=device-width会导致iphone、ipad横竖屏不分,initial-scale=1会导致IE横竖屏不分,都以竖屏的ideal viewport宽度为准。所以,最完美的写法两者都写上去, initial-scale=1 解决 iphone、ipad的缺陷,width=device-width解决IE的缺陷。

viewport设置移动端自适应的方法:

<meta name="viewport" content="width=device-width, initial-scale=1">

移动端自适应

此代码加到head标签里面,加入后可随不同机型的移动设备,设置html的fontSize大小,这样子用rem可作为解决移动端自适应的方案 !function(N,M){functionL(){vara=I.getBoundingClientRect().width;a/F>750&&(a=750*F);vard=a/10;I.style.fontSize=d+"px 查看详情

viewport原理和使用和设置移动端自适应的方法

viewport原理和使用和设置移动端自适应的方法HTML中:<metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0">  该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。当然m... 查看详情

移动端自适应字体大小

设置1rem=100pxwindow.addEventListener((‘orientationchange‘inwindow?‘orientationchange‘:‘resize‘),(function(){functionc(){varhtml=document.documentElement;html.style.fontSize=100*(html.clientWidth/375)+‘ 查看详情

处理移动端自适应布局的方法-calc()与vw

...局时,目前前端最流行的方法应该就是使用媒体查询,来设置HTML的字体大小,然后用rem为单位对Dom的宽高进行设置,这个方法的优势在于兼容性方面很好,劣势则在于当前市场上不同的机型太多,尺寸种类比较杂,所以要想做... 查看详情

echars移动端自适应学习笔记

...化的能力。为了解决这个问题,ECharts完善了组件的定位设置,并且实现了类似 CSSMediaQuery 的自适应能力。ECharts组件的定位和布局大部分『组件』和『系列』会遵循两种定位方式:一、left/right/top/bottom/width/height定位方式... 查看详情

移动端自适应处理页面布局

...大,这个可以在flexble.js进行配置,在项目index中去掉meta设置,在flexble.js加上nitial-scale 查看详情

移动端自适应方案(代码片段)

...显示精度问题一像素显示问题,缩放导致的像素适应问题移动端的自适应问题http://www.cnblogs.com/520yan...http://www.cnblogs.com/520yan...https://mp.weixin.qq.com/s?__...https://github.com/amfe/artic...1、 查看详情

移动端自适应解决方案

实现移动端自适应大概的几种方法:1.固定宽度,使用一个模式加上少许的媒体查询;2.使用flexbox解决;3.使用百分比加媒体查询;4.使用rem。一、如果是简单app,排版不管分辨率怎么变,关键元素宽高和位置固定,只是元素容器... 查看详情

移动端自适应布局方案尝试

原文地址:移动端自适应布局方案尝试问题刚开始接触移动端H5页面的时候最困扰的几个问题是:6或6p上明明是1px的边框怎么就成了2px或3px辣么粗!图片,div等如何等比自适应设计图后来慢慢知道了第一点是由于retina屏幕下设备... 查看详情

vue-cli+postcss实现移动端自适应

基于vue-cli3创建一个移动端项目vueaddvue-h5cdvue-h5npmrunserve安装postcss相关插件由于vue-cli已经内置了postcss,只需要安装相关插件,就可以实现vw/vh自适应布局。npmi--savepostcss-aspect-ratio-minipostcss-px-to-viewportpostcss-write-svgpostcss-cssnext 查看详情

(转)移动端自适应方案

研究样本手淘 ml.js天猫首页手机携程一个月前去了css开发者大会,听到了手淘的自适应方案,想起之前一直就想了解ml.js到底干了什么事。回来仔细研究了一下,抱着好奇心一并看了同样类型的网站的方案,深入学习一下。... 查看详情

浅谈移动端的自适应问题——响应式rem/em利用js动态实现移动端自适应

  随着3G的普及,越来越多的人使用手机上网。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?本篇文章将讲述自适应网页设... 查看详情

vue3.0+vite实现移动端自适应布局

参考技术A然后再main.ts中引入amfe-flexible最后启动项目就会发现px已经是自适应的单位,如果想用原来的px只需改成大写的PX单位即可 查看详情

移动端自适应解决方案

http://dudodo.cc/2017/06/01/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E8%87%AA%E9%80%82%E5%BA%94%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/#more  设计稿640640px=6.4rem100px=1rem10px=0.1rem1px=0.01rem (functio 查看详情

vw实现移动端自适应页面

一、设备支持情况测试网站:https://caniuse.com/#search=vwcss3test:https://airen.github.io/css3test/,https://github.com/airen/css3test1、PC端2、mobile端二、vw的不足比如当容器使用vw单位,margin采用px单位时,很容易造成整体宽度超过100vw,从而影响... 查看详情

移动端自适应布局方案尝试

问题刚开始接触移动端H5页面的时候最困扰的几个问题是:6或6p上明明是1px的边框怎么就成了2px或3px辣么粗!图片,div等如何等比自适应设计图后来慢慢知道了第一点是由于retina屏幕下设备像素比的问题造成,第二点知道了单位r... 查看详情

主机排行网重大更新,移动端自适应(代码片段)

此前有网友反馈,主机排行网在移动端表现太丑了,希望我改改,今天周末,我专门花了两个多小时来好好把移动短整治了一下,比以前好看多了。对比改变对比一下吧,下图是前版本的主机排行网:新版效果:本次修改的过程... 查看详情

vuecli3.0安装配置移动端自适应插件(postcss-pxtorem)

1.下载lib-flexible,并在main.js中引用npmilib-flexible--save2.安装自适应插件npmipostcss-pxtorem--save或npmipostcss-px-to-viewport--save3.修改vue.config.js配置文件(若项目中没有新建一个)module.export={lintOnSave:true,css:{loaderOptions 查看详情