• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    HTML5中 rem适配方案与 viewport 适配问题详解

    发布者: 土豆服务器 | 发布时间: 2025-6-16 12:23| 查看数: 83| 评论数: 0|帖子模式

    H5 端 rem 适配方案与 viewport 适配

    rem

    rem 是 CSS3 新增的一个相对单位(root em,根 em)
    只根据当前页面 HTML 页面的 font-size 设置,如果根目录的 font-size 为 18px,则 1rem=18px
    媒体查询设置
    1. @media screen and (min-width: 320px) {
    2.   html {
    3.     font-size: 32px;
    4.   }
    5. }
    6. @media screen and (min-width: 375px) {
    7.   html {
    8.     font-size: 37.5px;
    9.   }
    10. }
    11. @media screen and (min-width: 414px) {
    12.   html {
    13.     font-size: 41.4px;
    14.   }
    15. }
    16. @media screen and (min-width: 750px) {
    17.   html {
    18.     font-size: 75px;
    19.   }
    20. }
    复制代码
    使用 JS 动态修改
    1. <script>
    2.   // 根据屏幕尺寸大小调整html的fontsize
    3.   function setHtmlFontSize() {
    4.     const width = document.documentElement.clientWidth;
    5.     document.documentElement.style.fontSize = width / 10 + "px";
    6.   }
    7.   //   初始化
    8.   setHtmlFontSize();
    9.   //   监听屏幕尺寸变化事件
    10.   window.addEventListener("resize", setHtmlFontSize);
    11.   //   监听屏幕翻转事件
    12.   window.addEventListener("orientationchange", setHtmlFontSize);
    13. </script>
    复制代码
    viewport

    通过缩放来实现移动端各个尺寸的适配
    适配方案 动态创建 mate viewport 属性,根据当前屏幕尺寸动态设置缩放值
    Viewport 属性

                属性            说明            备注                                    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 相关属性 , 将所有设备布局视口的宽度调整为设计图的宽度
    1. //定义设计稿宽度为375
    2. const DESIGN_WIDTH = 375;
    3. //通过设置meta元素中content的initial-scale值达到移动端适配
    4. const setViewport = function () {
    5.   //计算当前屏幕的宽度与设计稿比例
    6.   let scale = window.screen.width / DESIGN_WIDTH;
    7.   // 获取元素
    8.   let meta = document.querySelector("meta[name=viewport]");
    9.   let content = `width=${DESIGN_WIDTH}, initial-scale=${scale}, maximum-scale=${scale}, minimum-scale=${scale}`;
    10.   // 判断是否已存在
    11.   if (!meta) {
    12.     meta = document.createElement("meta");
    13.     meta.setAttribute("name", "viewport");
    14.     document.head.appendChild(meta);
    15.   }
    16.   meta.setAttribute("content", content);
    17. };
    18. setViewport();
    19. //   监听屏幕变化事件
    20. window.addEventListener("resize", setViewport);
    21. //   监听屏幕翻转事件
    22. window.addEventListener("orientationchange", setViewport);
    复制代码
    到此这篇关于HTML5中 rem适配方案与 viewport 适配问题详解的文章就介绍到这了,更多相关html5 rem适配内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/html5/773174.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表