viewport 的基本原理以及详细使用方法_HTML/Xhtml_网页制作

来源:脚本之家  责任编辑:小易  

width=device-width/应用程序的宽度和屏幕的宽度是一样的initial-scale=1.0/应用程序启动时候的缩放尺度(1.0表示不缩放)minimum-scale=1.0/用户可以缩放到的最小尺度(1.0表示不缩放)maximum-scale=1.0/用户可以放大到的最大尺度(1.0表示不缩放)user-scalable=no/用户是否可以通过他的手势来缩放整个应用程序,使应用程序的尺度发生一个改变(yes/no)www.zgxue.com防采集请勿采集本网。

一.viewport的概要

移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。width:控制 viewport 的大小,可以指定的一个值,如果 600,或者特殊

移动端浏览器通常都在一个比屏幕更宽的虚拟窗口中渲染页面,这个虚拟窗口就是viewport,目的是正常展示没有做移动端适配的网页,可以让他们完整的展现给用户。我们有时用移动设备访问桌面版网页就会看到一个横向滚动条,这里可显示区域的宽度就是viewport的宽度。

移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。所以解决方式: 去了解了解“响应式布局”(响应式的布局的前提就是

常规使用,页面可以缩放就用下面的代码

meta是一个标签,你用eclipse自动创建一个空的JSP的时候会默认生成;charset=UTF-8\">;这个标签一半不会用它做什么事

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

控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100%时的 CSS 的像素)。height 和 width 相对应,指定高度。target-densitydpi 一个屏幕像素密度是由

如果不想页面缩放就用下面的代码

控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100%时的 CSS 的像素)。height 和 width 相对应,指定高度。target-densitydpi 一个屏幕像素密度是由

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

二.css中的像素和设备像素的区别

在桌面网页开发时,css中的1px就是设备上的1px;然而css中的1px仅仅是一个抽象的值,不代表实际像素为多少;而在移动设备中,不同设备的像素密度是不一样的,css中的1px可能并不等于真实设备的一个像素值。用户缩放也会改变css中的1px代表多少设备像素。这个比例就是devicePixelRatio

物理像素/独立像素 = devicePixelRatio

我们可以在浏览器中进行缩放,在控制台中打印window.devicePixelRatio来查看devicePixelRatio的大小。其中的独立像素可以理解为css中的px。

三.视口基础

代码:

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

以下为viewport的几个属性,这些属性可以混合来使用,多个属性同时使用要用逗号隔开。这里我们展开一个概念,叫做ideal viewport,指的是理想情况下的viewport,不需要用户缩放和横向滚动条就能正常查看网页的所有内容,并且能够看清所有文字,无论这个文字在css中定义为多小,显示出来时可以看清的。

属性 描述
width 控制视口的宽度,可以指定数字;或设置device-width来指定
height 控制视口的高度,这个属性不太重要,很少使用
initial-scale 控制页面最初加载时的在在idealviewport下缩放等级,通常设为1,可以是小数
maximum-scale 允许用户的最大缩放值,为一个数字,可以带小数
minimum-scale 允许用户的最小缩放值,为一个数字,可以带小数
user-scalable 是否允许用户进行缩放,值为”no”或”yes”, no 代表不允许,yes代表允许

四.viewport进阶

1.width和initial-scale

当设置了width和initial-scale时,浏览器会自动选择数值最大的进行适配。如设置:

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

浏览器会选择数值大的进行适配,如果当前窗口ideal viewport宽度为300,initial-scale值为1,取得是width为400的值;如果当前窗口的ideal viewport为480,则取480。

事实上,width=device-width和initial-scale=1都代表应用ideal viewport,但在ipad、iphone等移动设备和IE上,横竖屏不分,默认都取竖屏的宽度,兼容性最好的写法就是

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

2.动态改变属性

a. document.write()

document.write('<meta name="viewport" content="width=device-width,initial-scale=1">')

b.setAttribute

var mvp = document.getElementById('testViewport');

mvp.setAttribute('content','width=480');

viewport概念

移动端浏览器通常都在一个比屏幕更宽的虚拟窗口中渲染页面,这个虚拟窗口就是viewport,目的是正常展示没有做移动端适配的网页,可以让他们完整的展现给用户。我们有时用移动设备访问桌面版网页就会看到一个横向滚动条,这里可显示区域的宽度就是viewport的宽度。

移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。所以解决方式: 去了解了解“响应式布局”(响应式的布局的前提就是

css中的像素和设备像素的区别

在桌面网页开发时,css中的1px就是设备上的1px;然而css中的1px仅仅是一个抽象的值,不代表实际像素为多少;而在移动设备中,不同设备的像素密度是不一样的,css中的1px可能并不等于真实设备的一个像素值。用户缩放也会改变css中的1px代表多少设备像素。这个比例就是devicePixelRatio

物理像素/独立像素 = devicePixelRatio

我们可以在浏览器中进行缩放,在控制台中打印window.devicePixelRatio来查看devicePixelRatio的大小。其中的独立像素可以理解为css中的px。

视口基础

一个典型的针对移动端优化的站点包含类似下面的内容:

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

 

以下为viewport的几个属性,这些属性可以混合来使用,多个属性同时使用要用逗号隔开。这里我们展开一个概念,叫做ideal viewport,指的是理想情况下的viewport,不需要用户缩放和横向滚动条就能正常查看网页的所有内容,并且能够看清所有文字,无论这个文字在css中定义为多小,显示出来时可以看清的。

属性 描述
width 控制视口的宽度,可以指定数字;或设置device-width来指定
height 控制视口的高度,这个属性不太重要,很少使用
initial-scale 控制页面最初加载时的在在idealviewport下缩放等级,通常设为1,可以是小数
maximum-scale 允许用户的最大缩放值,为一个数字,可以带小数
minimum-scale 允许用户的最小缩放值,为一个数字,可以带小数
user-scalable 是否允许用户进行缩放,值为”no”或”yes”, no 代表不允许,yes代表允许

viewport进阶

1.width和initial-scale

当设置了width和initial-scale时,浏览器会自动选择数值最大的进行适配。如设置:

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

浏览器会选择数值大的进行适配,如果当前窗口ideal viewport宽度为300,initial-scale值为1,取得是width为400的值;如果当前窗口的ideal viewport为480,则取480。

事实上,width=device-width和initial-scale=1都代表应用ideal viewport,但在ipad、iphone等移动设备和IE上,横竖屏不分,默认都取竖屏的宽度,兼容性最好的写法就是

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

2.动态改变属性

a. document.write()

document.write('<meta name="viewport" content="width=device-width,initial-scale=1">')

b.setAttribute

var mvp = document.getElementById('testViewport');

mvp.setAttribute('content','width=480');

好了,这篇文章就介绍到这了大家可以根据自己测需要要选择。一般来说pc与移动不带自适应的就可以用不支持缩放的,如果跳转到移动端的可以缩放也没有影响。

在显示面积上手机屏幕相对桌面显示器要小很多,在几年前(现在也如此)大部分网站都是为桌面显示器浏览而设计,很少考虑到适应手机屏幕,所以如果用手机浏 览大多网站时会出现问题,比如常见固定宽度的网页会出现横向竖向滑动条,当然这不算什么大问题;但如果是浏览流动布局的网页那情况会非常糟糕,设想一个宽 度为30%的侧边栏对于320px手机屏幕而言也就96px,只能容纳8个12px的汉字,可阅读性非常差。为了让手机也能获得良好的网页浏览体验,Apple找到了一个办法:在移动版(iOS)的Safari中定义了viewport meta标签①,它的作用就是创建一个虚拟的窗口(viewport),而且这个虚拟窗口的分辨率接近于桌面显示器,Apple将其定位为980px②。以一代iphone下的Safari来说就是:在iphone的320px物理屏幕上—视觉窗口(visual viewport),创建出了一个980px的虚拟窗口—布局窗口(layout viewport),在视觉窗口(visual viewport)中我们可以拖动横向竖向滑动条或者放大缩小网页,来达到最佳的浏览效果(类似桌面浏览器);而布局窗口(layout viewport)用来配合CSS渲染布局,例如当我们设置一个容器的宽度为100%时,这个容器的实际值为980px而不是320px。如此一来大部分 网页就能以缩放的形式正常的显示在手机屏幕上了。如何设置viewport有了layout viewport似乎解决手机浏览网页的难题,但如果遇到专门为手机优化的网页就又有新的问题:是的,因为iphone的layout viewport默认为980px,导致专为其优化的320px宽的页面只能以缩放的方式显示,这时就需要对viewport进行设置:…”viewport”content=”width=device-width,initial-scale=1.0,user-scalable=no”/>…这个是最常见的一条viewport meta代码,将viewport定义为:宽度为设备宽度,初始缩放比例为1倍,禁止用户缩放。设置好后我们的页面就显示完美了:viewport全部属性&值如下:width:viewport宽度height:viewport高度initial-scale:初始缩放比例maximum-scale:最大缩放比例minimum-scale:最小缩放比例user-scalable:是否允许用户缩放例:width=960 或 device-widthheight=1000 或 device-heightinitial-scale=0.5maximum-scale=2minimum-scale=1user-scalable=1 或 0(yes 或 no)layout viewport的默认值在Apple实现viewport后,其他浏览器也加入了对viewport meta的支持,但彼此间还是有些差异,差异最大的是layout viewport的表现:Safari iPhone:980pxOpera:850pxAndroid WebKit:800pxIE:974px最后关注下width=device-width其实这个属性&值很有意思,字面意应该是viewport宽度等于设备宽度,但在实际中不同的浏览器都给出了个定值:320px;这个值还是源于 Apple,因为早期iphone的分辨率为320px×480px,大量为iphone量身定制的网站都设置了viewport:width=device-width,并且按照宽度320px来设计制作,所 以其他浏览器加入viewport支持时为了兼容性也将device-width定义为了320px。注解① 除此之外不同移动浏览器厂商也有不同的解决方案,例如UCweb就是使用中间件技术内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 像素密度与css3的viewport在移动端web响应式布局中的运用
  • html5移动端开发中的viewport标签及相关css用法解析
  • 简单总结css3中视窗单位viewport的常见用法
  • 网页宽度自动适应手机屏幕宽度的实现代码(viewport)
  • meta标签中的viewport控制设备屏幕css
  • meta标签中的使用viewport定义屏幕css
  • html网页中meta viewport属性说明
  • html meta viewport属性说明
  • html meta viewport属性详细说明
  • html5 viewport使用方法示例详解
  • 什么是viewport,为什么需要viewport麻烦告诉我
  • html新手提问:
  • 求3DMAX基本命令操作及其作用,急求!!
  • web开发 viewport是什么意思
  • viewport一般在网页中有什么用途
  • 使用viewport页面显示内容过大
  • 是什么意思?
  • viewport是html5专用的吗
  • viewport 是不是html5新元素
  • DXF是什么文件格式
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全主页网页制作html/xhtmlviewport像素密度与css3的viewport在移动端web响应式布局中的运用html5移动端开发中的viewport标签及相关css用法解析简单总结css3中视窗单位viewport的常见用法网页宽度自动适应手机屏幕宽度的实现代码(viewport)meta标签中的viewport控制设备屏幕cssmeta标签中的使用viewport定义屏幕csshtml网页中meta viewport属性说明html meta viewport属性说明html meta viewport属性详细说明html5 viewport使用方法示例详解html/xhtmlhtml5cssxml/xsltdreamweaver教程frontpage教程心得技巧iframe标签用法详解(属性、透明、自适应高度)16进制颜色代码(完全)40多个漂亮的网页表单设计实例定义input type=file 样式的方法html中让表单input等文本框为只读不可编辑的方法html中设置锚点定位的几种常见方法html 几种特别分割线特效 html iframe 用法总结收藏html 超级链接详细讲解网页嵌入百度地图和使用百度地图api自定义地图的详细html页面插入svg的多种方式table中cesllspacing与cellpadding的区别详解html表单控件禁用属性readonly vs disabled介绍html技巧 语义化你的代码 html在透明输入框里添加图标的实现代码解决vscode 中保存后html自动格式化的问题html实现简单listviews效果的实例代码html 中marquee标签实现无缝滚动跑马灯效果html符号转实体算法挑战html随意拖动内容位置的两种实现方式
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved