Webview中viewport的一些理解

点滴积累,缓缓蜕变

示意图1.png

对于viewport的理解

viewport我们暂且称它为可视窗口,一般情况下是指我们的移动端利用webview加载网页的时候,能够给这个网页提供多大的一个显示范围。

直接加载一个HTML页面

我这里选择了加载assets文件夹中的一个html页面,websetting先暂时什么也不用设置,直接加载当我们用webview加载一个html页面时,

mWebView = (WebView) findViewById(R.id.webview);
mWebView.loadUrl("file:///android_asset/webview_test.html");

那么将这样显示:

示例图2.png

这似乎是在说明,默认情况下是不支持viewport属性的。由于我没有设置s.setUseWideViewPort(true);,所以默认情况下,是不会去加载html文件中的<mate name="viewport"/>这个节点的。html文件中head标签如下:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=1000, initial-scale=1">
    <title>例子</title>
</head>

因为只是为了测试是否加载meta节点,所以给width设置了1000,这样可以看出变化,因为当不设置setUseWideViewPort()方法时,该webview显示网页的范围就是手机屏幕,当设置了setUseWideViewPort(true)时,这个时候就会去加载html中的

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

这时我们可以猜测一下:加载后给可视窗口设置了1000px的宽度。这时肯定就会大于手机屏幕的宽度,底部就应该会出现滑动条

加载HTML页面时设置viewport属性

于是乎我们来设置viewport属性

mWebView = (WebView) findViewById(R.id.webview);
WebSettings s = mWebView.getSettings();
s.setUseWideViewPort(true);
mWebView.loadUrl("file:///android_asset/webview_test.html");

情况就变成这样


示例图3.png
示例图4.png

注意底部可以滑动了。这样就说明了上面的猜测是正确的,因为加载网页的可视窗口的宽度为1000px,那么就得滑动屏幕才能显示完全。

设置一个超屏自动缩放的属性

当再多设置一个以下属性时,显示如下:

WebSettings s = mWebView.getSettings();
s.setLoadWithOverviewMode(true);
s.setUseWideViewPort(true);
示例图5.png

由此可见,这个属性的意思应该是,当可视窗口超出了一个屏幕的范围时,缩小加载的HTML文件,已达到宽度和手机屏幕宽度一致的情况。

总结

viewport指设备显示网页的区域,比如某台电脑分辨率为1366 * 768,那么这个电脑的viewport值应该就是1366(屏幕宽度)。

但是手机当初为了适配电脑的网页,viewport值都默认调整得比屏幕的分辨率要大,所以导致显示网页时出现横向滚动条。就比如一款分辨率为720*1280的手机,它的viewport值可能是980(也可能是其他值),这时加载网页时以980的viewport进行的渲染,那比屏幕的宽度还多了260px,那就超出屏幕,导致出现横向滚动条

当在实际开发中,我们可以设置这个viewport值,然后前端代码可以设置一个适配手机屏幕的viewport值,这个时候就可以到达一个比较满意的效果了。

以下这个设置就可以使得viewport等于device-width(设备宽度)

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>例子</title>
</head>

initial-scale=1这个是html页面的缩放比例。

贴上整个HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=1000, initial-scale=1">
    <title>例子</title>
</head>
<body>

<form>
    按钮:<input type="button" value="我是一个按钮2"><br>
    账号:<input type="text">
    密码: <input type="password">
    选中项:<input type="text" value="mike"><br>

    性别
    <input type="radio" name="sex">男
    <input type="radio" name="sex">女
    <input type="radio" name="sex">不详 <br>

    爱好
    <input type="checkbox" checked="checked">美女
    <input type="checkbox">香水
    <input type="checkbox">有毒
</form>


</body>
</html>

最后,由于本人水平有限,如有错误,欢迎指出,感激不尽!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 原文地址 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewp...
    matthewm阅读 1,549评论 0 4
  • (转自:http://blog.csdn.net/tengdazhang770960436/article/det...
    一个废人阅读 708评论 0 1
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 26号同学在我家聚会,恭喜李总成为XS饮料全国代理, 27号发小有是聚会,也是我通知,生活源自于模仿,现在都羡慕我...
    健康舞台阅读 181评论 0 0
  • 书名:旅行创意学 进度:第五章 旅行的收获就是用异乡客的眼光看自己早已熟悉的生活。 过头再看看自己的曾经的生活,你...
    V熊阅读 433评论 0 0