| 属性 | 说明 | 备注 |
|---|---|---|
| width | 以 px 为单位定义 viewport 的宽度 | 一个正整数或者额字符串 device-width |
| height | 以 px 为单位定义 viewport 的高度 | 一个正整数或者额字符串 device-height |
| initial-scale | 定义设备的 dips 宽度与 viewport 尺寸之间的比例 | 一个 0.0 到 10.0 之间的正数 |
| maximum-scale | 定义最大缩放值,他的值必需大于等于 minimum-scale 的值 | 一个 0.0 到 10.0 之间的正数 |
| minimum-scale | 定义最小缩放值,他的值必需小于等于 maximum-scale 的值 | 一个 0.0 到 10.0 之间的正数 |
| user-scalable | 一个布尔值,用户是否可以缩放页面 | yes 或 no |
使用 js 动态设置 viewport 属性
原理:通过设置 viewport 的 initial-scale 相关属性 , 将所有设备布局视口的宽度调整为设计图的宽度
//定义设计稿宽度为375
const DESIGN_WIDTH = 375;
//通过设置meta元素中content的initial-scale值达到移动端适配
const setViewport = function () {
//计算当前屏幕的宽度与设计稿比例
let scale = window.screen.width / DESIGN_WIDTH;
// 获取元素
let meta = document.querySelector("meta[name=viewport]");
let content = `width=${DESIGN_WIDTH}, initial-scale=${scale}, maximum-scale=${scale}, minimum-scale=${scale}`;
// 判断是否已存在
if (!meta) {
meta = document.createElement("meta");
meta.setAttribute("name", "viewport");
document.head.appendChild(meta);
}
meta.setAttribute("content", content);
};
setViewport();
// 监听屏幕变化事件
window.addEventListener("resize", setViewport);
// 监听屏幕翻转事件
window.addEventListener("orientationchange", setViewport);
到此这篇关于HTML5中 rem适配方案与 viewport 适配问题详解的文章就介绍到这了,更多相关html5 rem适配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
上一篇:HTML5轮播图全代码