HTML的meta viewport属性应该如何使用

这次给大家带来htmlmeta viewport属性应该如何使用,使用html的meta viewport属性注意事项有哪些,下面就是实战案例,一起来看一下。

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


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的iphone3 gs、3.5寸-640 * 960的iphone4或者9.7寸-1024*768的ipad2,虽然设备的分辨率不同,物理尺寸也不同,但你可以通过设置viewport让它们在 浏览器里有相同的分辨率。比如说,你的网站是800px宽,你可以通过设置viewport的width=800,来让你的网站在这三个不同的设备上都刚 好满屏显示你的网站。
以上的知识,相信每个对viewport稍有了解的同学应该都已经了解了。这不是我今天想说的重点。我想说明的是viewport在ios和android上的一些差异表现。
网上一搜关于viewport的知识,基本上全都是如下信息:


这段代码的意思是,让viewport的宽度等于物理设备上的真实分辨率,不允许用户缩放。一都主流的web app都是这么设置的,它的作用其实是故意舍弃viewport,不缩放页面,这样dpi肯定和设备上的真实分辨率是一样的,不做任何缩放,网页会因此显 得更高细腻。玩ps的同学应该都知道,当你将一张1000 * 1000的图片直接缩放至500 * 500分变成什么样,对吧?图片的失真一定逃不掉。
但我要做的一个应用却恰恰相反,需要利用viewport,利用缩放。不论真实分辨率是多少,无论物理尺寸是多少,我都希望在浏览器里,能有统一的分辨 率,同时也不允许用户缩放。我用来测试的设备有:iphone4、ipad2、htc的g11、不知道什么厂商的aquos phone(android系统)、华硕的android pad、dell的winphone然后我一路遇到了如下问题:
1)如果不显示地设置viewport,那么width的默认为980。如果页面的所有元素宽度都小于980,此时width为980,如果页面最 宽的位置超过980,那么width等于最大宽度。总之,默认能将整个页面从左到右显示出来。如果设置了viewport,比如,只单纯地设置了 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不生效,即是说:,无法阻止用户缩放屏幕。我们需要显示地设置一下width值,仅管这个值对android下的浏览器分辨屏并不产生任何影响(对ios还是会 产生影响的),我们仍然要设置它,而且这个值一定要大于320,如果小于等于320,也无法使user-scalable=no生效。这个问题只在htc 的g11手机上出现,在aquos phone没有这个问题。兼容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里的hr水平线应该如何使用

以上就是HTML的meta viewport属性应该如何使用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545785.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 17:24:59
下一篇 2025年12月15日 18:39:12

相关推荐

  • HtmL的元素有哪几种隐藏方式

    这次给大家带来html的元素有哪几种隐藏方式,html的元素隐藏方式的注意事项有哪些,下面就是实战案例,一起来看一下。 1,使用css style=”display:none;” 2.使用javascript item.style.display=’none’; 相信看了这些案例你已经掌握了方法,更…

    好文分享 2025年12月21日
    000
  • html与xhtml和xml有什么区别

    这次给大家带来html与xhtml和xml有什么区别,html与xhtml和xml区别的注意事项有哪些,下面就是实战案例,一起来看一下。 发展趋势: html(超文本标记语言)——xhtml(可扩展性超文本标记语言)——xml(可扩展性标记语言); html: 1.对大小写不敏感; 2.标签不必成对…

    好文分享 2025年12月21日
    000
  • HTML的TextArea怎么保存格式

    这次给大家带来html的textarea怎么保存格式,html的textarea保存格式的注意事项有哪些,下面就是实战案例,一起来看一下。 textarea在保存时格式是可以保存到数据库的,但是展示时因为/n和不能互转导致页面不能按照刚开始的时候的格式展示,所以在页面展示的时候,要在值的外面嵌套一层…

    好文分享 2025年12月21日
    000
  • html怎样重定向连接

    这次给大家带来html怎样重定向连接,html重定向连接的注意事项有哪些,下面就是实战案例,一起来看一下。 代码如下: window.location.href=”zcbfH.jsp”;//在本框架中重定向 onclick=”top.mainFrame.location=’/login.jsp'”;…

    好文分享 2025年12月21日
    000
  • html里怎样实现异步上传文件

    这次给大家带来html里怎样实现异步上传文件,html里实现异步上传文件的注意事项有哪些,下面就是实战案例,一起来看一下。 代码如下: 这是html中最常见最简单的表单提交方式,但是这种方式必须会切换页面,也许有些时候我们希望可以在同一个页面与服务器进行交互,并不希望提交完表单后切换到另一个页面去,…

    好文分享 2025年12月21日
    000
  • HTML中定义多个class属性无效

    这次给大家带来html中定义多个class属性无效,html中定义多个class属性无效的注意事项有哪些,下面就是实战案例,一起来看一下。 在编写html的过程中,我们会经常为class属性定义多个值,但是同样会经常发现自己定义的值无效!!! 以前碰到这种情况我就直接重写了,或者直接用id设置css…

    好文分享 2025年12月21日
    000
  • 常用html元素结构有哪些

    这次给大家带来常用html元素结构有哪些,使用常用html元素结构的注意事项有哪些,下面就是实战案例,一起来看一下。 基本结构:  2.文档类型: (1)HTML 4.01 (2)HTML5 (3)XHTML 1.0  立即学习“前端免费学习笔记(深入)”; 3.头部: (1)字符集 (2)引入JS…

    好文分享 2025年12月21日
    000
  • 在html里怎么添加flash视频格式(flv、swf)文件

    这次给大家带来在html里怎么添加flash视频格式(flv、swf)文件,在html里添加flash视频格式(flv、swf)文件的注意事项有哪些,下面就是实战案例,一起来看一下。 flash文件的格式:.FLV 和 .SWF flash视频格式有两种扩展名可以使用:.flv和.swf。他们有什么…

    好文分享 2025年12月21日
    000
  • html怎样实现图文混排

    这次给大家带来html怎样实现图文混排,html实现图文混排的注意事项有哪些,下面就是实战案例,一起来看一下。 文字绕图 如果我们使用正常的,例如: @@##@@这里是普通的。国内的VB网站中vbgood以每日更新,资料量丰富,而深受程序爱好者的喜欢。 这样的语句中图片比文字高度要高,则文字上部会有…

    好文分享 2025年12月21日
    000
  • 在HTML里的hr水平线应该如何使用

    这次给大家带来在html里的hr水平线应该如何使用,在html里的hr水平线使用的注意事项有哪些,下面就是实战案例,一起来看一下。 代码如下: 相信看了这些案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章! 相关阅读: 怎样通过disabled和readonly将input设置为只读效果 立即…

    好文分享 2025年12月21日
    000
  • 如何使用HTML的title属性

    这次给大家带来如何使用html的title属性,使用html的title属性的注意事项有哪些,下面就是实战案例,一起来看一下。 如果你想对使用手机,平板电脑和辅助技术的用户隐藏某些内容,而只对键盘用户显示,那么请使用title属性。 细节 HTML的title属性本身有问题。之所以有问题是因为它在一…

    好文分享 2025年12月21日
    000
  • html标准写法与dreamweaver生成代码有哪些不一样

    这次给大家带来html标准写法与dreamweaver生成代码有哪些不一样,html标准写法与dreamweaver生成代码的注意事项有哪些,下面就是实战案例,一起来看一下。 代码如下: //这里写你的js代码 接下来介绍html标签 换行标签   //不换行    @@##@@ @@##@@ @@…

    好文分享 2025年12月21日
    000
  • html的图片怎样使用base64编码来代替

    这次给大家带来html的图片怎样使用base64编码来代替,html的图片使用base64编码来代替的注意事项有哪些,下面就是实战案例,一起来看一下。 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看代码后发现,里面的图片是使用base64编码后的字符串代替了,这个叫做Dat…

    好文分享 2025年12月21日
    000
  • 优化HTML的输入框提高用户体验和易用度的方法

    这次给大家带来优化html的输入框提高用户体验和易用度的方法,优化html的输入框提高用户体验和易用度的注意事项有哪些,下面就是实战案例,一起来看一下。 为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框。一般的输入框是怎样优化的呢?从用户体验的角度出发,简化用户使用…

    好文分享 2025年12月21日
    000
  • Html中Select的option怎样设置默认选择

    这次给大家带来html中select的option怎样设置默认选择,html中select的option设置默认选择的注意事项有哪些,下面就是实战案例,一起来看一下。 给某个option 添加 selected = “selected” 属性就是默认选项 如: 全部 通过 未…

    好文分享 2025年12月21日
    000
  • html canvas截取圆角图片的实现方法

    以前我们只能通过其他的截图工具来截取图像。现代浏览器的功能已经越来越强,随着h5的逐渐普及,浏览器本身就可以截图啦。html2canvas就是这样一款前端插件,它的原理是将dom节点在canvas里边画出来。虽然很方便,但有以下限制: 本文主要介绍html2canvas截图不能截取圆角图片的解决方案…

    2025年12月21日
    000
  • 在HTML里select标签有哪些用法

    这次给大家带来在html里select标签有哪些用法,在html里使用select标签的注意事项有哪些,下面就是实战案例,一起来看一下。 select 元素可创建单选或多选菜单。当提交表单时,浏览器会提交选定的项目,或者收集用逗号分隔的多个选项,将其合成一个单独的参数列表,并且在将 表单数据提交给服…

    好文分享 2025年12月21日
    000
  • HTML的输入框需要怎么优化

    这次给大家带来html的输入框需要怎么优化,html输入框优化的注意事项有哪些,下面就是实战案例,一起来看一下。 为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框。一般的输入框是怎样优化的呢?从用户体验的角度出发,简化用户使用步骤,让用户用得更方便就是提高了易用性,…

    好文分享 2025年12月21日
    000
  • html的form内部标签应该如何使用

    这次给大家带来html的form内部标签应该如何使用,使用html的form内部标签的注意事项有哪些,下面就是实战案例,一起来看一下。 form表单的使用 form表单标签,子标签实例: 列表标签: Volvo Saab Fiat Audi 复选框实例: 我喜欢自行车: 我喜欢汽车: 单选按钮:男性…

    好文分享 2025年12月21日
    000
  • HTML的头标签meta如何实现refresh重新定向

    这次给大家带来html的头标签meta如何实现refresh重新定向,html的头标签meta如何实现refresh重新定向的注意事项有哪些,下面就是实战案例,一起来看一下。 对不起。我们已经搬家了。您的 URL 是 http://www.w3school.com.cn 您将在 5 秒内被重定向到新…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信