meta name=viewport content=width=device-width, initial-scale=1 作用

2023-12-16 04:58

本文主要是介绍meta name=viewport content=width=device-width, initial-scale=1 作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考。


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

作用是设置可视区域的宽度初始缩放比例

1 width

可视区域的宽度,值可为数字或关键词 device-widthphys.width

  • device-width:又指 css-width,通过 window.screen.width 获取

  • phys.width:物理宽度,通过 document.documentElement.clientWidth 获取

通常 device-widthphys.width 不相等,如 iPhone6 的 phys.width 为 750px,而 css-width 为 375px

2 height

可视区域的高度

3 initial-scale

可视区域初始缩放比例

4 maximum-scale

允许用户缩放的最大比例,1.0 将禁止用户放大到实际尺寸以上

5 minimum-scale

允许用户缩放的最小比例,1.0 将禁止用户缩小到实际尺寸以下

6 user-scalable

是否允许用户手动缩放,no 禁止缩放

详细说明:

浏览器如果把电脑端宽度为 980px 的网页展现在宽度为 750px 的 iPhone6 手机屏上,势必会放不下,手机端横向会出现滚动条,怎么阻止这种情况呢,很简单,浏览器默认一个虚拟窗口,不同浏览器有不同的虚拟窗口宽度的默认值,如:

  • Safari iPhone:980px

  • opera:850px

  • Andriod webkit:800px

  • IE:974px

然后把这个 980px 虚拟窗口装进宽度为 750px 的 iPhone6 中,当然这样的话必须缩放,这就是为什么在手机中展现电脑端页面没有出现横向滚动条,而且字迹明显变小的原因。

meta 标签中,width 有两个含义:

I widthphys.width

II width 也是虚拟窗口的 width

这样就会有两个结果:

I iPhone6 的 phys.width 也变成了 css-width 即 375px,可以通过 document.documentElement.clientWidth 获取得到此时 phys.width 确实为 375px

II 如果是 375px 的手机端页面,此时的虚拟窗口的宽度也为 375px,再装进 phys.width 为 375px 的手机时,当然如设计的效果一致,不会缩放,也不会出现横向滚动条

此外还会影响响应式布局和媒体查询

@media only screen and (min-width: 350px) and (max-width: 480px){.....................}

如没有meta标签,此时的 width 当然即为 phys.width,iPhone6 就不会执行上边的括号里边的代码,但是有了 meta 标签以后呢,width 变成了 css-width,即为 375px,,所以是会执行代码的。

从以上可以看出,有了 meta 标签以后,原本的 iPhone6,即像素比为2的手机,可以按照 css-width 相同的像素比为1的手机一样正常显示,像素比更高的手机也能正常显示。当然现在 andriod 的 2K 屏在 meta 标签的帮助下也能正常显示。即对于开发者来说,已经可以不管手机的像素比,只需按照 css 像素编写代码即可。

这篇关于meta name=viewport content=width=device-width, initial-scale=1 作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/499181

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们