广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >HTML的meta viewport属性怎么用
  • 566
分享到

HTML的meta viewport属性怎么用

2024-04-02 19:04:59 566人浏览 薄情痞子
摘要

这篇文章主要介绍html的meta viewport属性怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   什么是Viewport   手机浏览器是把页面放在一个虚拟的“窗

这篇文章主要介绍html的meta viewport属性怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

  什么是Viewport

  手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤到很小的窗口中(这样会破坏没有针对手机浏览器优化的网页的布局),用户可以通过平移和缩放来看网页的不同部分。移动版的Safari浏览器最新引进了viewport这个metatag,让网页开发者来控制viewport的大小和缩放,其他手机浏览器也基本支持。

  Viewport基础

  一个常用的针对移动网页优化过的页面的viewportmeta标签大致如下:

  <metaname=”viewport”content=”width=device-width,initial-scale=1,maximum-scale=1&Prime;>

  width:控制viewport的大小,可以指定的一个值,如果600,或者特殊的值,如device-width为设备的宽度(单位为缩放为100%时的CSS的像素)。

  height:和width相对应,指定高度。

  initial-scale:初始缩放比例,也即是当页面第一次load的时候缩放比例。

  maximum-scale:允许用户缩放到的最大比例。

  minimum-scale:允许用户缩放到的最小比例。

  user-Scalable:用户是否可以手动缩放

  关于viewport的一些问题

  viewport并非只是iOS上的独有属性,在Android、winphone上同样也有viewport。它们要解决的问题是相同的,即无视设备的真实分辨率,直接通过dpi,在物理尺寸和浏览器之间重设分辨率,这个分辨率和设备的分辨率无关。比如,你拿个3.5寸-320*480的iphone3gs、3.5寸-640*960的iphone4或者9.7寸-1024*768的ipad2,虽然设备的分辨率不同,物理尺寸也不同,但你可以通过设置viewport让它们在浏览器里有相同的分辨率。比如说,你的网站是800px宽,你可以通过设置viewport的width=800,来让你的网站在这三个不同的设备上都刚好满屏显示你的网站。

  以上的知识,相信每个对viewport稍有了解的同学应该都已经了解了。这不是我今天想说的重点。我想说明的是viewport在ios和android上的一些差异表现。

  网上一搜关于viewport的知识,基本上全都是如下信息:

  <metaname="viewport"content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no"/>

  这段代码的意思是,让viewport的宽度等于物理设备上的真实分辨率,不允许用户缩放。一都主流的WEBapp都是这么设置的,它的作用其实是故意舍弃viewport,不缩放页面,这样dpi肯定和设备上的真实分辨率是一样的,不做任何缩放,网页会因此显得更高细腻。玩ps的同学应该都知道,当你将一张1000*1000的图片直接缩放至500*500分变成什么样,对吧?图片的失真一定逃不掉。

  但我要做的一个应用却恰恰相反,需要利用viewport,利用缩放。不论真实分辨率是多少,无论物理尺寸是多少,我都希望在浏览器里,能有统一的分辨率,同时也不允许用户缩放。我用来测试的设备有:iphone4、ipad2、htc的g11、不知道什么厂商的aquosphone(android系统)、华硕的androidpad、dell的winphone然后我一路遇到了如下问题:

  1)如果不显示地设置viewport,那么width的默认为980。如果页面的所有元素宽度都小于980,此时width为980,如果页面最宽的位置超过980,那么width等于最大宽度。总之,默认能将整个页面从左到右显示出来。如果设置了viewport,比如,只单纯地设置了user-scalable=no,例如<metaname="viewport"content="user-scalable=no"/>,那么ios下width还是按980显示(即默认就会通过dpi缩放),但android和winphone下却不会再缩放了,浏览器分辨率和真实设置分辨率一致。

  2)对于ios设备,设置width可以生效,但对于android,设置width并不会生效。ios设备,缩放的比率即dpi是通过你设置的width和设置真实分辨率自动计算的,而android下你设置width无效,你能设置的是一个特殊的字段target-densitydpi,关于target-densitydpi可以参考一下这篇文章:Http://hi.baidu.com/j_fo/blog/item/748361279ebccd18908f9d7d.html。也就是说,有三个变量:浏览器width、设备真实width、dpi。我们简单地用个公式来表达它们之间的关系吧(并非真实关系,简单说明用)设备真实width*dpi=浏览器width,这里的三个变量,设备真实width是个我们不能操作的已知值,另外两个变量我们可以设置一个来影响另一个,在ios中,我们能改的是浏览器width,dpi自动生成,而在android中,我们能改的是dpi,浏览器width自动生成。对于android,无论我们如何设置width,也不会对浏览器width产生影响。

  ps:这里我另外再说一个奇怪的问题:在htc的g11里(htc的手机我只有这一个,别的没有测),如果设置了dpi而不显示地设置width,则user-scalable=no不生效,即是说:<metaname="viewport"content="target-densitydpi=300,user-scalable=no"/>,无法阻止用户缩放屏幕。我们需要显示地设置一下width值,仅管这个值对android下的浏览器分辨屏并不产生任何影响(对ios还是会产生影响的),我们仍然要设置它,而且这个值一定要大于320,如果小于等于320,也无法使user-scalable=no生效。这个问题只在htc的g11手机上出现,在aquosphone没有这个问题。兼容android真是件头痛的事@_@,未来还不知道有多少坑呢。而在winphone上,结果就更奇怪了:我给viewport的width设一个大于480的值,user-scalable=no就失效了,而设一个小于480的值,user-scalable=no能生效。但无论我给viewport的width设多少值,对winphone真正显示的width却并不产生我预期的影响,通过target-densitydpi也没有影响。设置width,如果小于480的话,屏幕会缩放,但缩小的比例却和我预期完全不一样,我不知道它是按照什么规律缩放的。不知道这是winphone的问题,还是dell实现的问题。

  3)这一条和上一条应该是直接相关的:ios设备在横竖屏时,会自动调整dpi,无论横屏还是竖屏,都能保证浏览器width等于viewport中设置的值,所以横竖屏的时候,页面里显示的内容的大小是会自动缩放产生变化的。而android手机在横竖屏的时候,不会改变dpi,在横竖屏的时候,网页不会产生缩放。也正因此,ios可以保证横竖屏页面都不会产生滚动条,满屏显示,而android却无法保证这一点,横着满屏则竖着无法满屏,反之亦然。

  4)对于ios设备,如果width显示定义了,而页面最宽的位置超过width的话,width无效,仍按最宽的宽度来显示(不会有滚动条)。但此时会出现一个很奇怪的问题,当你将手机横竖屏切换几次之后,会发现你的页面自动放大了,出现了滚动条,但其实放大后的宽度其实和你设的width也并没有关系。为了防止这种情况出现,你需要将width的宽度设置得比页面最宽的地方更大,或者相同。

HTML的meta viewport属性怎么用HTML的meta viewport属性怎么用

以上是“HTML的meta viewport属性怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: HTML的meta viewport属性怎么用

本文链接: https://www.lsjlt.com/news/89907.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML的meta viewport属性怎么用
    这篇文章主要介绍HTML的meta viewport属性怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   什么是Viewport   手机浏览器是把页面放在一个虚拟的“窗...
    99+
    2022-10-19
  • 如何实现meta标签中viewport来控制设备屏幕的css属性
    这篇文章主要介绍了如何实现meta标签中viewport来控制设备屏幕的css属性,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   &l...
    99+
    2022-10-19
  • 常见的 HTML<meta> 标签的 name 属性及其作用
    HTML中的 标签可以通过 name 属性提供元数据,这些元数据可以用于指定有关文档的信息,以及控制浏览器和搜索引擎的行为。name 属性通常与其他属性一起使用,如 content、charset、http-equiv 等,以提供更具体的...
    99+
    2023-08-30
    html 前端
  • HTML的title属性怎么用
    小编给大家分享一下HTML的title属性怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   如果你想对使用手机,平板电...
    99+
    2022-10-19
  • HTML align属性怎么用
    这篇“HTML align属性怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“HTML...
    99+
    2022-10-19
  • html属性怎么使用
    今天小编给大家分享一下html属性怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。class属性class属性用于指定...
    99+
    2023-07-06
  • HTML的font-family属性怎么用
    这篇“HTML的font-family属性怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2022-10-19
  • HTML中id属性怎么用
    这篇文章主要介绍HTML中id属性怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 下面的 HTML 代码中,id 属性为 red 的 p 元素浮现为赤色,而 id 属性为 g...
    99+
    2022-10-19
  • html中hover属性怎么用
    html中hover属性的使用方法:可以在选择鼠标指针浮动在上面的元素中使用,例如在html中添加以下语法格式“标签选择器:hover{样式代码;}”格式进行使用,共有4种使用方式比如:1、直接在悬浮元素上改变样式;2、改变子元素的样式;3...
    99+
    2022-10-09
  • html中的meta标签怎么用
    这篇文章主要介绍html中的meta标签怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! meta标签的作用。 metadata 中文名叫做元数据,是用于描述数据的数据,它不...
    99+
    2022-10-19
  • HTML的<form>属性怎么用
    本文小编为大家详细介绍“HTML的<form>属性怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML的<form>属性怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢...
    99+
    2022-10-19
  • meta标签中的http-equiv属性有什么用
    小编给大家分享一下meta标签中的http-equiv属性有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!meta是htm...
    99+
    2022-10-19
  • HTML中selectedIndex属性怎么使用
    selectedIndex属性用于设置或返回下拉列表中被选项的索引号。要设置selectedIndex属性的值,可以使用以下两种方式...
    99+
    2023-09-13
    HTML
  • HTML中button autofocus属性怎么用
    这篇文章将为大家详细讲解有关HTML中button autofocus属性怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在html 5中,可以设置当页面加载时,...
    99+
    2022-10-19
  • HTML标签的marginheight属性怎么使用
    在HTML中,marginheight属性用于设置一个frame或iframe元素的上下边缘的外边距(即垂直边距)。它是在frame...
    99+
    2023-09-05
    HTML
  • 怎么使用html中meta标签
    本篇内容主要讲解“怎么使用html中meta标签”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用html中meta标签”吧!一、meta标签 含义  &l...
    99+
    2022-10-19
  • HTML中的<meta>标签怎么用
    这篇文章给大家分享的是有关HTML中的<meta>标签怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。     HTML<meta&g...
    99+
    2022-10-19
  • HTML Input属性怎么设置
    HTML Input属性可以通过在``标签内设置属性来进行设置。以下是几个常用的 input 属性:1. `type`:设置输入字段...
    99+
    2023-10-10
    HTML
  • HTML中的img标签属性怎么使用
    这篇文章主要讲解了“HTML中的img标签属性怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML中的img标签属性怎么使用”吧!描述HTML&l...
    99+
    2022-10-19
  • meta标签name=“referrer“属性的写法和用法
    HTML标签name="referrer"属性主要用于控制网页发送给服务器的referrer信息,可以告诉服务器端用户是从哪个页面来到当前网页的。 什么是referrer? referrer有“引用页面”或“来源页面”的意思,用来指定当...
    99+
    2023-08-31
    服务器 html5 Powered by 金山文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作