ElementUI响应式布局bug、其中中el-col-sm-0会导致响应式布局失效得解决方法

如下布局,如果将:sm="0"则会导致456始终不显示
下面得响应式布局目的就是希望在sm也就是屏幕宽度在小于992px时将456隐藏,不显示,但是如果这样做就会出现bug

<el-col :xs="24" :sm="24" :md="17" :lg="19" :xl="20">123el-col>
<el-col :xs="0" :sm="0"  :md="7" :lg="5" :xl="4" >456el-col>

完整得例子

新建一个demo.html文件内容如下


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面title>
    
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <style>
        * {
      
            margin: 0;
            padding: 0;
        }

        .myclass1 {
      
            height: 200px;
            background-color: slategray;
        }

        .myclass2 {
      
            height: 200px;
            background-color: #867090;
        }
    style>

head>
<body>
<div id="app">
    <el-row>
        <el-col :xs="24" :sm="24" :md="17" :lg="19" :xl="20" class="myclass1">123el-col>
        <el-col :xs="0" :sm="1" :md="7" :lg="5" :xl="4" class="myclass2" >456el-col>
    el-row>

div>


<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>

<script src="https://unpkg.com/element-ui/lib/index.js">script>
<script type="text/javascript">
    const vm = new Vue({
       // 配置对象 options
        // 配置选项(option)
        el: '#app',  // element: 指定用vue来管理页面中的哪个标签区域
        data: {
      
            screenWidth: 992
        },
    })
script>
body>
html>

会发现456不会显示,虽然宽度有了但是内容456却不显示
ElementUI响应式布局bug、其中中el-col-sm-0会导致响应式布局失效得解决方法_第1张图片

将sm得值设置非0则正常,但是屏幕宽度为sm时会导致456被挤下去如下ElementUI响应式布局bug、其中中el-col-sm-0会导致响应式布局失效得解决方法_第2张图片

解决方法,通过vue得v-if或者v-show

首先、将sm不要设置为0,例如设置为1
其次、为了解决这个sm=1的问题,通过js获取屏幕宽度,当屏幕<992时就不显示即可

当屏幕小于992px时将其隐藏掉

<el-row>
    <el-col :xs="24" :sm="24" :md="17" :lg="19" :xl="20" class="myclass1">123el-col>
    <el-col :xs="0" :sm="1" :md="7" :lg="5" :xl="4" 
    	class="myclass2" v-show="screenWidth >= 992">456el-col>
el-row>

以及通过vue获取屏幕宽度

const vm = new Vue({
      // 配置对象 options
    // 配置选项(option)
    el: '#app',  // element: 指定用vue来管理页面中的哪个标签区域
    data: {
     
        screenWidth: 992
    },
    mounted(){
     
        const that = this
        window.onresize = () => {
     
            return (() => {
     
                window.screenWidth = document.body.clientWidth
                that.screenWidth = window.screenWidth
            })()
        }
    }
})

效果
ElementUI响应式布局bug、其中中el-col-sm-0会导致响应式布局失效得解决方法_第3张图片

你可能感兴趣的:(#,Vue学习笔记,云博前端)