用rem编写移动端自适应网页

简介: rem与px 的换算计算公式: 元素的宽度(或高度) / html元素(跟标签)的font-size = rem;举例 元素的宽度是 200px, html的font-size是100px, 那么元素宽度的rem大小 = 200/100 = 2...

rem与px 的换算

  1. 计算公式: 元素的宽度(或高度) / html元素(跟标签)的font-size = rem;
  2. 举例 元素的宽度是 200px, html的font-size是100px, 那么元素宽度的rem大小 = 200/100 = 2rem

移动端自适应网页的编写

  1. 自适应: 当屏幕的像素变大的时候,字体和元素也响应变大
  2. 什么是视口: 移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域
  3. 代码如下
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- 视口宽度与设备宽度一样 禁止用户缩放 -->
    <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
    <title>Document</title>
    <style>
                // 当我们拖动网页或者刚改手机的时候,html的font-size会发生改变
        html {
            font-size: 100px;
        }

        body {
            font-size: 16px;
        }

        h1 {
            font-size: 0.12rem;
        }
        // 试试手机为ip6plus和ip5时,div的宽高各是多少(px)
        div {
            width: 1rem;
            height: 1rem;
            background: gray;
            line-height: 1rem;
        }
    </style>
</head>

<body>
    <script>
        function resetWidth() {
            // 兼容ie浏览器 document.body.clientWidth
            var baseWidth = document.documentElement.clientWidth || document.body.clientWidth;
            console.log(baseWidth);
            // 默认的设置是375px(ip6)的根元素设为100px, 其他的手机都相对这个进行调整
            document.documentElement.style.fontSize = baseWidth / 375 * 100 + 'px'
        }
        resetWidth();
        window.addEventListener('resize', function () {
            resetWidth();
        })
    </script>
    <div>
        内容
    </div>
</body>

</html>
目录
相关文章
|
机器学习/深度学习 数据可视化 PyTorch
零基础入门语义分割-地表建筑物识别 Task5 模型训练与验证-学习笔记
零基础入门语义分割-地表建筑物识别 Task5 模型训练与验证-学习笔记
577 2
|
前端开发 JavaScript UED
深入理解requestAnimationFrame函数及其应用
深入理解requestAnimationFrame函数及其应用
解决传入的请求具有过多的参数,该服务器支持最多 2100 个参数
解决传入的请求具有过多的参数,该服务器支持最多 2100 个参数
|
移动开发 前端开发 JavaScript
|
机器学习/深度学习 人工智能 网络协议
探讨《黑神话:悟空》开发者需要掌握的关键技术储备
探讨《黑神话:悟空》开发者需要掌握的关键技术储备
271 7
|
监控 JavaScript API
使用 requestAnimationFrame 提升 web 性能
使用 requestAnimationFrame 提升 web 性能
253 1
|
前端开发 C#
【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟
【.NET Core】你认识Attribute之CallerMemberName、CallerFilePath、CallerLineNumber三兄弟
180 0
|
Prometheus 监控 前端开发
前端项目脚本加载失败:net:: ERR_HTTP2_PROTOCOL_ERROR 200
前端项目脚本加载失败:net:: ERR_HTTP2_PROTOCOL_ERROR 200
3382 0
前端项目脚本加载失败:net:: ERR_HTTP2_PROTOCOL_ERROR 200
|
资源调度 前端开发 JavaScript
前端简历模板内容
前端简历模板内容
294 2
|
前端开发 JavaScript Java
基于qiankun的微前端最佳实践 -(同时加载多个微应用)
基于qiankun的微前端最佳实践 -(同时加载多个微应用)
5290 0
基于qiankun的微前端最佳实践 -(同时加载多个微应用)

热门文章

最新文章