http://www.uiej.com/960.html
越来越多的网页开始针对手机浏览,自适应屏幕大小了,css的设置方法请参见前面的文章:用CSS3的@media属性根据屏幕大小做自适应各种分辨率网页显示版本-media_query详解,在这篇文章里面我们详细解读一下,html5属性里面 meta name=viewport 的最佳设置方式。
首先:看看实例一
<head> .... <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=yes;"> ... </head>
解读:width=device-width :自适应屏幕大小,initial-scale=1.0 :初始缩放是1比1,maximum-scale=1.0 :最大允许缩放也是1比1,虽然在最后加了用户可以缩放:user-scalable=yes 但是手机浏览器(UC)上依然无法缩放。
好处:在大屏幕的手机上,用户无法缩放,控制了由于误操作导致的网页变形,保证了原始的网页设计。
坏处:这是我经常去逛的一个手机网站,我用的3.5寸的屌丝手机,很多小字与图片无法放大,根本不知道里面是什么内容,非常扯蛋。
结论:网页是给人看的,第一位重要的还是内容的传达,如果为了设计而损失了用户的真实使用,那是扯淡的设计。
再来看实例二
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=2.0" />
这是大站,新浪 sina.cn 的设置,这样用户至少可以缩放到2倍大小,基本满足大多数的需求。
非自适应网页的研究
如果我们的网站没有做自适应的设置,让用户浏览完整版本的网页(有些网页没有必要去画蛇添足),如果这个时候我们在网页里面加入上面实例二代码,就会出现一个问题。
问题是:我们在手机端打开正常网页的时候(浏览器非自适应设置),网页会被自动缩放到1:1的状态,一般网页的宽度都超过了手机屏幕,而不能看见网页的全貌,这样有好也有坏。为了增强用户对网站的整体认知,我们还是建议缩放显示全貌比较好。
建议:在非自适应网页上面,建议最好不要加meta name=”viewport”的代码,如果你一定要加,请加如下模式:
<meta name="viewport" content="width=980, minimum-scale=1.0, maximum-scale=2.0" />
其中 width=980 可以改成你网页的最小宽度。
但是,当你把 width=980 这个数值,设置小于或者等于手机屏幕的时候,这个设置值一般会失效,而按照缩放等级显示。
viewport设置的详细参数
<meta name="viewport" content=" height = [pixel_value | device-height] , width = [pixel_value | device-width ] , initial-scale = float_value , minimum-scale = float_value , maximum-scale = float_value , user-scalable = [yes | no] , target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi] " />
其他参数的详解
target-densitydpi
一个屏幕像素密度是由屏幕分辨率决定的,通常定义为每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度,中像素密度,高像素密度。一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素密度的屏幕每英寸上的像素点更多。Android Browser和WebView默认屏幕为中像素密度。
下面是 target-densitydpi 属性的 取值范围
device-dpi –使用设备原本的 dpi 作为目标 dp。 不会发生默认缩放。
high-dpi – 使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备相应缩小。
medium-dpi – 使用mdpi作为目标 dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。 这是默认的target density.
low-dpi -使用mdpi作为目标 dpi。中等像素密度和高像素密度设备相应放大。
<value> – 指定一个具体的dpi 值作为target dpi. 这个值的范围必须在70–400之间。
<!-- html document --> <meta name="viewport" content="target-densitydpi=device-dpi" /> <meta name="viewport" content="target-densitydpi=high-dpi" /> <meta name="viewport" content="target-densitydpi=medium-dpi" /> <meta name="viewport" content="target-densitydpi=low-dpi" /> <meta name="viewport" content="target-densitydpi=200" />
为了防止Android Browser和WebView 根据不同屏幕的像素密度对你的页面进行缩放,你可以将viewport的target-densitydpi 设置为 device-dpi。当你这么做了,页面将不会缩放。相反,页面会根据当前屏幕的像素密度进行展示。在这种情形下,你还需要将viewport的width定义为与设备的width匹配,这样你的页面就可以和屏幕相适应。
initial-scale
初始缩放。即页面初始缩放程度。这是一个浮点值,是页面大小的一个乘数。例如,如果你设置初始缩放为“1.0”,那么,web页面在展现的时候就会以target density分辨率的1:1来展现。如果你设置为“2.0”,那么这个页面就会放大为2倍。
maximum-scale
最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个值设置为“2.0”,那么这个页面与target size相比,最多能放大2倍。
user-scalable
用户调整缩放。即用户是否能改变页面缩放程度。如果设置为yes则是允许用户对其进行改变,反之为no。默认值是yes。如果你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,因为根本不可能缩放。
所有的缩放值都必须在0.01–10的范围之内。
例:
(设置屏幕宽度为设备宽度,禁止用户手动调整缩放)
<meta name="viewport" content="width=device-width,user-scalable=no" />
(设置屏幕密度为高频,中频,低频自动缩放,禁止用户手动调整缩放)
<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
有爱一街推荐的设置
最后,如果是有适应手机版本的网页本站推荐设置成:
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=2.0" />
如果不是适应手机的网页则不要加viewport设置,但是两种网页都推荐在css里面加上:
-webkit-text-size-adjust:none; min-width:320px;
1、有些客户喜欢把浏览器的字体调到超大,结果会让你的网页字与字之间重叠。2、给个最小宽度,太小的屏幕也给出横向滚动了,不要一竖列排下去了。
题外话:感谢杨师发现并一起研究了这个问题。
相关推荐
移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。 Viewport 基础 一个常用的针对移动网页优化过的页面的 viewport meta 标签大致...
移动版的 Safari 浏览器最新引进了 viewport 这个 meta tag,让网页开发者来控制 viewport 的大小和缩放,其他手机浏览器也基本支持。 Viewport 基础 一个常用的针对移动网页优化过的页面的 viewport meta 标签...
这样做的目的主要是为了让原本为桌面设计的网页在手机上也能完整显示,避免出现横向滚动条。当你在移动设备上访问桌面版网页并看到横向滚动条时,那个可显示的区域宽度就是viewport的宽度。 在CSS中,一个像素(px...
它告诉设备如何调整页面以适应不同的屏幕尺寸,例如`<meta name="viewport" content="width=device-width, initial-scale=1">`,确保页面在手机和平板上具有良好的用户体验。 此外,meta标签还有多种用途,如`<meta...
meta name =“ viewport” content =“ width = device-width,initial-scale = 1“> <link rel =” alternate icon“ type =” image / png“ href =” / assets / images / site / favicon.png“> <...
HTML中的meta标签是HTML5头元素中的重要组成部分,主要用于提供元信息,如页面描述、关键词、作者信息以及针对不同设备和浏览器的优化设置。在移动前端开发中,正确使用meta标签能够极大地提升用户体验和搜索引擎...
例如,通过`<meta name="viewport" content="width=device-width, initial-scale=1.0"/>`可以使得网页在手机和平板设备上自适应显示。 ### 知识点二:CSS3的视觉效果与布局技巧 CSS3提供了丰富的样式和动画功能,...
1. **响应式设计**: Html5提供了`<meta name="viewport">`标签,允许开发者自定义视口大小,使得网页能适应不同尺寸的屏幕。 2. **离线存储**: `Application Cache`或`Service Worker`技术使得网页可以在离线状态下...
在深入学习和使用这个模板时,学生应了解HTML5的新特性,比如`<header>`、`<nav>`、`<section>`、`<article>`、`<footer>`等语义化标签,以及如何通过`<meta name="viewport">`来设置移动设备的视口属性。...
在HTML5中,新增的标签如`<meta name="viewport">`有助于控制移动设备上的视口设置,进一步支持响应式设计。 这个“398”文件可能是压缩包中的一个主要源码文件,可能包含了一个完整的HTML5模板,用于快速搭建手机...
`<meta name="viewport">` 标签在其中扮演了关键角色,它允许开发者控制页面在移动设备上的视口(viewport)行为。这个标签主要用来解决手机浏览器在显示网页时可能出现的缩放问题,确保页面能够正确地适应各种屏幕...
最后,考虑到SEO(搜索引擎优化),模板应该包含元标签(meta tags)如`<meta name="viewport">`来指定设备视口的宽度和初始缩放比例,确保在不同设备上正确显示。同时,合理的HTML结构和alt属性对于图像的描述有助...
7. SEO友好:移动Html5网页模板需要遵循搜索引擎优化的最佳实践,如使用正确的元标签(如`<meta name="viewport">`),确保内容可被爬虫抓取,使用语义化HTML标签等,以提高搜索引擎的可见性和排名。 综上所述,...
例如,`<meta name="apple-mobile-web-app-capable" content="yes">`可以使网页以全屏模式运行,`<meta name="apple-mobile-web-app-status-bar-style" content="black">`可以设置状态栏颜色,而`<meta name="format...
考虑到搜索引擎的抓取和索引,整页滑动的微网页需要进行SEO优化,例如使用合适的HTML5语义化标签、添加`<meta name="viewport">`标签来设置视口宽度,以及确保内容在没有JavaScript的情况下也能正常访问。...
在提供的源码中,开发者可能使用了`<meta name="viewport" content="...">`标签来定义视口大小,以及CSS3的媒体查询,以适应各种设备。 网站模板是预设计的网页布局,通常包括头部、导航、主体内容和页脚等部分,为...
在HTML5中,`<meta name="viewport">`标签用于控制移动设备的视口设置,是实现响应式设计的关键。 从压缩包文件名称列表中的"H917"来看,这可能是一个特定的项目代码库或者模板名称,具体的内容可能包括HTML文件、...
在HTML5中,`<meta name="viewport">`标签用于定义视口大小,`@media`查询则帮助我们针对不同设备定义样式规则。 前端页面是用户与网站交互的直接界面,它不仅包括HTML,还涉及CSS(Cascading Style Sheets)和...
HTML5中的新元素和属性,如`<meta name="viewport">`,为响应式设计提供了强大的支持,允许开发者根据设备特性调整页面显示。 标签“html5模板”表明这个源码可能是一个预设计的框架,开发者可以快速搭建具有现代...
HTML5提供了一些特定的标签和属性,如<meta name="viewport">,帮助开发者调整网页在不同尺寸屏幕上的显示效果,确保内容在小屏幕上也能清晰、易读。 前端开发是指使用HTML、CSS(Cascading Style Sheets)和...