vue前端页面自适应解决方案

Posted 曾胖神父

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue前端页面自适应解决方案相关的知识,希望对你有一定的参考价值。

什么是自适应?

定义

自适应是一套代码能够自动适配各个终端。一次设计,普遍适用。

自适应方案

使用百分比

<style>
  .box 
    width: 100vw;
    height: 100vh;
    .inner-box 
      width: 20%;
      height: 20%;
      background: cadetblue;
    
  
</style>

使用rem,resize

rem的原理是根据父组件的fontsize来计算rem的单位长度。可以通过监听window的resize,动态修改fontsize,进而影响rem,最终达到自适应的效果
resize.js

const resize=()=>
    //与原来1080的比值
    let scale=window.innerHeight/1080;
    document.documentElement.style.fontSize=`$32*scalepx`;
    console.log('resize');

const scaleListener=()=>
    window.addEventListener('resize',resize);
    console.log('scaleListening');

export 
    scaleListener

Remandresizeselfadaption.vue

<template>
    <div class="remandresizeselfadaption">
        内容提示
    </div>
</template>
<script>
import  scaleListener  from './resize';
export default
    mounted()
        scaleListener();
    

   
</script>

媒体查询语句

@media screen and (max-width:300px)
   html
     width:300px;
     font-size:12px;
   

@media screen and (max-width:500px)
     html
     width:500px;
     font-size:20px;
     margin:0 auto; 
   

flex布局

<template>
    <div class="home">
        <img src="../assets/vue.svg" alt="Vue logo">
        <div class="flex-test">
            <div class="div1">图片1</div>
            <div class="div2">图片2</div>
            <div class="div3">图片3</div>
            <div class="div4">图片4</div>
        </div>
    </div>
</template>
<script>
export default


</script>
<style scoped>
.flex-test 
    display: flex;
    flex-direction: row;
    width: 60vw;
    height: 50vh;
 

.div1 
        width: 20%;
        background-color: cadetblue;
        display: flex;
        align-items: center;
        justify-content: center;
    

    .div2 
        width: 20%;
        background-color: darkgray;
        display: flex;
        align-items: center;
        justify-content: center;
    

    .div3 
        width: 20%;
        background-color: darkolivegreen;
        display: flex;
        align-items: center;
        justify-content: center;
    

    .div4 
        width: 20%;
        background-color: green;
        display: flex;
        align-items: center;
        justify-content: center;
    
</style>

以上是关于vue前端页面自适应解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js高效前端开发知识 • 目录

前端编程之路

前端页面加载速度优化解决方案

Vue.js---实现前后端分离架构中前端页面搭建

web前端开之网站搭建框架之vue详解

vue移动端高度自适应 100vh不够