iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue前端项目自适应布局的简单方法
  • 851
分享到

Vue前端项目自适应布局的简单方法

2024-04-02 19:04:59 851人浏览 泡泡鱼
摘要

目录一、单位尺寸二、基于rem实现自适应布局附:HTML5页面 的rem 布局适配方法总结一、单位尺寸 px%vw、vh: 窗口em: 针对父元素的font-sizerem:&ldq

一、单位尺寸

  • px
  • %
  • vw、vh: 窗口
  • em: 针对父元素的font-size
  • rem:“root em”的缩写,是一个相对长度单位;rem单位作用于非根元素时,相对于根元素(html)字体大小,rem单位作用于根元素字体大小时,相对于其出初始字体大小。

说明:

谷歌浏览器,字体的默认大小是16px;

如果父元素item1的font-size=50px,那么子元素item2的1em=50px。

如果html的顶层font-size为20px; 那么子元素item2的1rem就为20px。

二、基于rem实现自适应布局

假设页面的根元素,font-size的大小没有设置,默认为16px。

经过设计,我们的页面主体部分宽为500px; 高为200px。要想转换为自适应布局,我们只需要将px转换为rem就可以。

转换后:

宽为:500/16rem

高为:200/16rem

附:html5页面 的rem 布局适配方法

rem 布局适配方案

主要方法为:

  • 按照设计稿与设备宽度的比例,动态计算并设置 html 根标签的 font-size 大小;
  • CSS 中,设计稿元素的宽、高、相对位置等取值,按照同等比例换算为 rem 为单位的值;
  • 设计稿中的字体使用 px 为单位,通过媒体查询稍作调整。

1 动态设置 html 标签 font-size 大小

精简通用版本:

!(function(win, doc){
  function setFontSize() {
    // 获取window 宽度
    // zepto实现 $(window).width()就是这么干的
    var winWidth =  window.innerWidth;
    // doc.documentElement.style.fontSize = (winWidth / 640) * 100 + 'px' ;
    
    // 640宽度以上进行限制 需要css进行配合
    var size = (winWidth / 640) * 100;
    doc.documentElement.style.fontSize = (size < 100 ? size : 100) + 'px' ;
  }

  var evt = 'onorientationchange' in win ? 'orientationchange' : 'resize';

  var timer = null;

  win.addEventListener(evt, function () {
    clearTimeout(timer);

    timer = setTimeout(setFontSize, 300);
  }, false);

  win.addEventListener("pageshow", function(e) {
    if (e.persisted) {
      clearTimeout(timer);

      timer = setTimeout(setFontSize, 300);
    }
  }, false);
  // 初始化
  setFontSize();

}(window, document));

高配精确版本:

(function(WIN) {
    var  setFontSize = WIN.setFontSize = function (_width) {
        var  docEl = document.documentElement; 
        // 获取当前窗口的宽度
        var  width = _width || docEl.clientWidth; // docEl.getBoundinGClientRect().width;

        // 大于 1080px 按 1080
        if (width > 1080) { 
            width = 1080;
        }

        var  rem = width / 10;
        console.log(rem);

        docEl.style.fontSize = rem + 'px';

        // 误差、兼容性处理
        var  actualSize = win.getComputedStyle && parseFloat(win.getComputedStyle(docEl)["font-size"]);
        if (actualSize !== rem && actualSize > 0 && Math.abs(actualSize - rem) > 1) {
            var remScaled = rem * rem / actualSize;
            docEl.style.fontSize = remScaled + 'px';
        }
    }

    var timer;

    function dbcRefresh() {
        clearTimeout(timer);
        timer = setTimeout(setFontSize, 100);
    }

    //窗口更新动态改变 font-size
    WIN.addEventListener('resize', dbcRefresh, false);
    //页面显示时计算一次
    WIN.addEventListener('pageshow', function(e) {
        if (e.persisted) { 
            dbcRefresh() 
        }
    }, false);
    setFontSize();
})(window)

//对H5活动推过页面,宽高比例有所要求,可适当调整
function adjustWarp(warpId = '#warp') {

    const $win = $(window);
    const height = $win.height();
    let width = $win.width();

    // 考虑导航栏情况
    if (width / height < 360 / 600) {
        return;
    }

    width = Math.ceil(height * 360 / 640);

    $(warpId).css({
        height,
        width,
        postion: 'relative',
        top: 0,
        left: 'auto',
        margin: '0 auto'
    });

    // 重新计算 rem
    window.setFontSize(width);
}

2 通过 CSS3媒体查询设置 rem

简单易用 缺乏灵活度 请看demo 你懂的

@media screen and ( min-width: 320px){html{font-size:50px}}
@media screen and ( min-width: 360px){html{font-size:56.25px}}
@media screen and ( min-width: 375px){html{font-size:58.59375px}}
@media screen and ( min-width: 384px){html{font-size:60px}}
@media screen and ( min-width: 400px){html{font-size:62.5px}}
@media screen and ( min-width: 414px){html{font-size:64.6875px}}
@media screen and ( min-width: 424px){html{font-size:66.25px}}
@media screen and ( min-width: 480px){html{font-size:75px}}
@media screen and ( min-width: 540px){html{font-size:84.375px}}
@media screen and ( min-width: 640px){html{font-size:100px}}

根据个人项目需求和产品设计可适当修改,以上demo写法并不唯一固定。

总结

到此这篇关于Vue前端项目自适应布局的文章就介绍到这了,更多相关Vue前端自适应布局内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue前端项目自适应布局的简单方法

本文链接: https://www.lsjlt.com/news/150906.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue前端项目自适应布局的简单方法
    目录一、单位尺寸二、基于rem实现自适应布局附:html5页面 的rem 布局适配方法总结一、单位尺寸 px%vw、vh: 窗口em: 针对父元素的font-sizerem:&ldq...
    99+
    2024-04-02
  • Vue前端项目自适应布局怎么实现
    这篇文章主要介绍“Vue前端项目自适应布局怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue前端项目自适应布局怎么实现”文章能帮助大家解决问题。一、单位尺寸px%vw、vh: 窗口em: ...
    99+
    2023-07-02
  • 自适应布局的处理方法
    本篇内容介绍了“自适应布局的处理方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!左边固定,右边自适应(圣杯布局的实现): 代码如下:<...
    99+
    2023-06-08
  • html5自适应页面布局的方法
    这篇文章主要讲解了“html5自适应页面布局的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5自适应页面布局的方法”吧!   一、静态布局(S...
    99+
    2024-04-02
  • css3多兰自适应布局的方法
    这篇“css3多兰自适应布局的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“css3多...
    99+
    2024-04-02
  • 前端开发中移动端如何实现自适应布局
    这篇文章将为大家详细讲解有关前端开发中移动端如何实现自适应布局,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一. 在HTML的头部加入meta标签在HTML的头部,也就是head标签中增加meta标签,告...
    99+
    2023-06-08
  • vue项目适配大屏端的方法
    本篇内容主要讲解“vue项目适配大屏端的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue项目适配大屏端的方法”吧!浅析rem首先rem是css单位,相比于px固定的像素单位,rem更加的...
    99+
    2023-06-20
  • html左中右自适应布局的方法
    本篇内容介绍了“html左中右自适应布局的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在最新的html标准中 有了个calc css表...
    99+
    2023-06-08
  • vue项目适配大屏端的方法示例
    浅析rem 首先rem是css单位,相比于px固定的像素单位,rem更加的灵活,还有现在也比较好的vm。如果从未了解过,可以先过过眼 rem自适应。CSS3的REM设置字体大小 ...
    99+
    2024-04-02
  • vue项目做屏幕自适应处理方式
    目录起由总结起由 项目基于vue-cli搭建,之前项目采用less的功能函数集合媒体查询做的屏幕适配,但是由于JavaScript的对浮点数据处理,这个语言本身的bug问题,总是会出...
    99+
    2023-01-12
    vue屏幕自适应 屏幕自适应 屏幕自适应处理
  • renrne-fast-vue 前端菜单修改成横、纵方向布局
    要将 renrne-fast-vue 的前端菜单修改成横向或纵向布局,你可以按照以下步骤进行操作:1. 在 `src/layout/...
    99+
    2023-09-09
    vue
  • 如何使用positon属性使前端界面进行自适应布局
    这篇文章主要讲解了“如何使用positon属性使前端界面进行自适应布局”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用positon属性使前端界面进行...
    99+
    2024-04-02
  • vue移动端自适应的方法是什么
    这篇文章主要介绍“vue移动端自适应的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue移动端自适应的方法是什么”文章能帮助大家解决问题。方案1:直接引入js  (自己 写的动...
    99+
    2023-07-04
  • 【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 项目概述
    配套视频地址:https://www.bilibili.com/video/BV1dG4y1T7yp/ 项目概述 1. 目标 通过学习本项目,深刻理解前后端分离的思想,具备独立搭建前后端分离项目的能力及功能扩展能力 2. 开发模式 3. ...
    99+
    2023-08-16
    spring boot vue.js 后端 java elementui
  • CSS自适应布局如何实现子元素项目整体居中,内部项目左对齐
    这篇文章给大家分享的是有关CSS自适应布局如何实现子元素项目整体居中,内部项目左对齐的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。日常工作时,我们可能遇到这样一个布局:一个父元素框框(随着浏览器大小自适应宽度)里...
    99+
    2023-06-08
  • Rainbond对前端项目Vue及React持续部署的方法
    这篇文章主要讲解了“Rainbond对前端项目Vue及React持续部署的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Rainbond对前端项目Vue及React持续部署的方法”吧!前...
    99+
    2023-06-30
  • 实现响应式布局的自适应效果,应该使用哪些单位?
    在响应式布局中,使用何种单位来实现自适应的效果? 随着移动设备的普及和各种尺寸的屏幕出现,响应式布局成为了现代网页设计与开发中一个重要的概念。通过响应式布局,可以使网页在不同设备上实现自适应的效果,提升用户体验。而在实现响应式布...
    99+
    2024-01-29
    % vw px
  • react前端项目打包优化的方法
    今天小编给大家分享一下react前端项目打包优化的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。分析通过控制台判断加载资...
    99+
    2023-06-05
  • SpringBoot项目启动时增加自定义Banner的简单方法
    目录前言制作Banner总结前言 最近有小伙伴推荐给博客启动的时候加上自定义Banner,开始我还不太明白他说的是那部分,后面给我发了这样一个文件,陌溪瞬间就懂了 /////////...
    99+
    2024-04-02
  • nginx部署多前端项目的几种方法
    个人总结了3种方法来实现在一台服务器上使用nginx部署多个前端项目的方法。 基于域名配置 基于端口配置 基于location配置 在正式开始之前,我们先...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作