在需要调整设备浏览器的viewport时,我们通常在HTML中使用来解决。但是令人意想不到的是,viewport meta标签并不具有“规范性”,即它不是W3C的正式标准,也非Web标准。

Apple公司率先在其iPhone中的Safari浏览器中实现了viewport meta标签,其他浏览器厂商也快速采纳了它。由于IOS、Android及类似平台在平板电脑和智能手机设备中的流行度和市场占有率,使得viewport meta标签被广泛使用。

viewport meta标签是用做布局的,这种活本应属于CSS的职能。这也是为什么W3C正在尝试规范一种新的设备适配方法的原因,将HTML对viewport的控制转交给CSS。

@viewport CSS 规则

使用@viewport规则控制viewport,与使用meta标签的效果相同,只是我们完全使用CSS来控制。与使用meta标签一样,仍然建议使用设备无关的值(device-width)来设置viewport宽度。


复制代码代码如下:
@viewport {
width: device-width;
}

如今,也有很多开发者已经在使用@viewport了,因为在IE10的捕捉模式(snap mode)下,Windows 8 Metro模式下的一个特性,可以将浏览器拖至屏幕的左端或右端,同时使用两个窗口。奇怪的是, 要解决这个问题,开发者就要使用上面介绍的device-width方法,或者在media query里面使用@viewport规则。

@viewport 与 Media Queries配合使用
我们可以在media query里面使用@viewport,已达到更加精准的优化。比如,下面的media query将viewport小于400px(IE10 的 捕捉模式)缩放至320px宽。


复制代码代码如下:
@media screen and (max-width: 400px) {
@-ms-viewport { width: 320px; }
...
}

@viewport 描述符(Descriptors)
zoom描述符等同于viewport meta 标签的initial-sacale属性。


复制代码代码如下:
@viewport {
width: device-width;
zoom: 2;
}

与minimum-scale, maximum-scale对应的描述符是max-zoom, min-zoom。


复制代码代码如下:
@viewport {
width: device-width;
max-zoom: 3;
min-zoom: 0.50;
}

user-zoom与user-scalable属性等效。


复制代码代码如下:
@viewport {
width: device-width;
user-zoom: fixed;
}

浏览器支持情况
IE10/11 , opera, webkit, moz 都已支持,,且需要厂商前缀。


复制代码代码如下:
@-webkit-viewport {
width: device-width;
}
@-moz-viewport {
width: device-width;
}
@-ms-viewport {
width: device-width;
}
@-o-viewport {
width: device-width;
}
@viewport {
width: device-width;
}

所以,目前我们还是需要viewport meta 标签。

后记

用此方法可以解决 Windows Phone IE浏览下, 定位在底部(bottom:0)的元素与底部有间距的问题。

参考:

  1. Thinking Ahead: CSS Device Adaptation With @viewport
  2. http://getbootstrap.com/getting-started/#browsers
  3. Windows Phone 8 and Device-Width
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。