Vue 实现响应式布局

实现响应式布局是工作中必不可少 客户需要

若是使用vue +element ui 的方式实现

浏览器宽度为760的情况

浏览器宽度为360的情况 

手机上的显示的情况

一、对于屏幕尺寸的定义

element UI参照Bootstrap的解决方案提供了五种屏幕大小尺寸:xs、sm、md、lg 和 xl。并对这五种尺寸提供了两种解决方案。

名称尺寸设备
xs <768px  超小屏 如:手机
sm ≥768px 小屏幕 如:平板
md ≥992px  中等屏幕 如:桌面显示器
lg≥1200px     大屏幕 如:大桌面显示器
xl   ≥1920px  2k屏等

二、Element UI提供的两种解决方案
 

(一)在标签中指定元素所占大小
这种方式通常需要结合<el-row></el-row>标签使用。在列元素中指定不同尺寸下元素所占的大小,例如:xs="4"表示在手机上将一行分为24栏本元素占4栏。这种方法简化了CSS关于响应式布局代码的编写,但是需要配合<el-row></el-row>标签使用,不是很灵活。

<el-row :gutter="10"><el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple"></div></el-col><el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple-light"></div></el-col><el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple"></div></el-col><el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>

:xs="4"表示在手机上将一行分为24栏本元素占4栏。这种方法简化了Css关于响应式布局代码的编写,但是需要配合<el-row></el-row>标签使用,不是很灵活。

(二)使用样式类指定元素是否显示

这种方法需要导入element-ui/lib/theme-chalk/display.css样式就可以实现在不同屏幕尺寸下,元素是否显示。这种方法的好处是不需要配合<el-row></el-row>标签就可以使用,使用起来比较灵活。但是这种只能简单的对元素进行隐藏,如果需要实现稍微复杂点的响应式样式就要思考很多。使用这种方法首先需要导入样式:import 'element-ui/lib/theme-chalk/display.css';。然后在目标元素上添加类名就行。例如:

<el-divider class="hidden-sm-and-up"></el-divider>

这表示<el-divider></el-divider>元素在手机网页中显示,在平板及比平板屏幕大的设备上隐藏。下面是Element UI官网提供的一些用于隐藏元素的类名。

hidden-xs-only - 当视口在 xs 尺寸时隐藏
hidden-sm-only - 当视口在 sm 尺寸时隐藏
hidden-sm-and-down - 当视口在 sm 及以下尺寸时隐藏
hidden-sm-and-up - 当视口在 sm 及以上尺寸时隐藏
hidden-md-only - 当视口在 md 尺寸时隐藏
hidden-md-and-down - 当视口在 md 及以下尺寸时隐藏
hidden-md-and-up - 当视口在 md 及以上尺寸时隐藏
hidden-lg-only - 当视口在 lg 尺寸时隐藏
hidden-lg-and-down - 当视口在 lg 及以下尺寸时隐藏
hidden-lg-and-up - 当视口在 lg 及以上尺寸时隐藏
hidden-xl-only - 当视口在 xl 尺寸时隐藏

三、不该被忘记的CSS语法

比如时间选择器不能满足需求时,我们可以使用@media语法来确定屏幕尺寸,并且指定在不同尺寸下的元素样式。例如,我们指定一个元素在不同屏幕尺寸下的大小:

浏览器宽度800的情况

 手机尺寸的情况:

@media screen and (max-width: 768px) {.customCon .el-picker-panel__body {display: flex;flex-direction: column;justify-content: center;align-items: center;}.customCon .el-date-range-picker__content {width: 100%;}
}

效果图:

pc

手机设备

 

示例代码如下:无添加额外class

<template><div><el-row :gutter="25"><el-form ref="elForm" :model="formData" :rules="rules" size="medium"><el-col :span="20" :xs="24"><el-form-item label="线索内容" prop="clueContent"><el-inputv-model="formData.clueContent"type="textarea"placeholder="请输入线索内容":autosize="{ minRows: 4, maxRows: 4 }":style="{ width: '100%' }"/></el-form-item></el-col><el-col :span="20" :xs="24"><el-button type="primary" style="" @click="findClue">检索</el-button></el-col><el-col :span="24"><el-form-item label="涉及企业" prop="clueCompany"><el-inputv-model="formData.clueCompany"placeholder="请输入涉及企业"clearable/></el-form-item></el-col><el-col :span="20"><el-form-item label="所属镇街" prop="regionName"><el-selectv-model="formData.regionName"placeholder="请选择"clearablefilterable><el-optionv-for="(item, index) in regionNameOptions":key="index":label="item.label":value="item.label"/></el-select></el-form-item></el-col><el-col :span="20"><el-form-item label="线索地址" prop="clueAddress"><el-inputv-model="formData.clueAddress"placeholder="请输入线索地址"clearable/></el-form-item></el-col><el-col :span="20"><el-form-item label="线索类型" prop="clueType"><el-radio-group v-model="formData.clueType" size="medium"><el-radiov-for="(item, index) in clueTypeOptions":key="index":label="item.value":disabled="item.disabled">{{ item.label }}</el-radio></el-radio-group></el-form-item></el-col><el-col :span="20"><el-form-item label="污染源类型" prop="pollutionType"><el-radio-group v-model="formData.pollutionType" size="medium"><el-radiov-for="(item, index) in pollutionTypeOptions":key="index":label="item.dictValue">{{ item.dictLabel }}</el-radio></el-radio-group></el-form-item></el-col><el-col :span="20"><el-form-item label="违法行为项" prop="wfxwx"><el-selectv-model="formData.wfxwx"value-key="id"placeholder="请选择"clearablefilterable@change="breakChange"><el-optionv-for="item in wfxwxArr":key="item.id":label="item.wfxwx":value="item"/></el-select></el-form-item></el-col><el-col :span="20"><el-form-item label="法律法规名称" prop="flfgName"><el-inputv-model="formData.flfgName"placeholder="请查看法律法规名称"clearable/></el-form-item></el-col><el-col :span="20"><el-form-item label="法律法规内容" prop="flfgContent"><el-inputv-model="formData.flfgContent"placeholder="请查看法律法规内容"clearableautosizetype="textarea"/></el-form-item></el-col><el-col :span="20"><el-form-item label="线索时间" prop="clueTime"><el-date-pickerv-model="formData.clueTime"format="yyyy-MM-dd"value-format="yyyy-MM-dd":style="{ width: '100%' }"placeholder="请选择线索时间"clearable/></el-form-item></el-col><el-col :span="20"><el-form-item label="线索交办科室" prop="designateDept"><el-cascaderv-model="formData.designateDept":options="designateDeptOptions":props="designateDeptProps":style="{ width: '100%' }"placeholder="请选择线索交办科室"clearable@change="handleChange"/></el-form-item></el-col><el-col :span="20"><el-form-item label="是否为线索" prop="isClueFirstStep"><el-radio-group v-model="formData.isClueFirstStep" size="medium"><el-radiov-for="(item, index) in isClueFirstStepOptions":key="index":label="item.value":disabled="item.disabled">{{ item.label }}</el-radio></el-radio-group></el-form-item></el-col><el-col :span="20"><el-form-item label="理由" prop="isClueFirstStepReson"><el-inputv-model="formData.isClueFirstStepReson"type="textarea"placeholder="请输入理由":autosize="{ minRows: 4, maxRows: 4 }":style="{ width: '100%' }"/></el-form-item></el-col><el-col v-if="this.deployId" :span="24"><el-form-item size="large"><el-button type="primary" @click="submitForm">提交</el-button><el-button @click="resetForm">重置</el-button></el-form-item></el-col></el-form></el-row></div>
</template>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/294900.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV与YOLO学习与研究指南

引言 OpenCV是一个开源的计算机视觉和机器学习软件库&#xff0c;而YOLO&#xff08;You Only Look Once&#xff09;是一个流行的实时对象检测系统。对于大学生和初学者而言&#xff0c;掌握这两项技术将大大提升他们在图像处理和机器视觉领域的能力。 基础知识储备 在深入…

行列式:方程组未知数的计算:克拉默法则

行列式&#xff1a;方程组未知数的计算 ![ ](https://img-blog.csdnimg.cn/direct/4a9c2800da3746ea95c1a3c93057d796.png)

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展&#xff0c;越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商&#xff0c;想要拓展线上业务&#xff0c;那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序&#xff0c;让你轻松完成…

使用Docker一键部署Uptime Kuma,并将监控服务映射至公网访问

文章目录 **主要功能**一、前期准备本教程环境为&#xff1a;Centos7&#xff0c;可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务&#xff0c;如何安装Docker详见&#xff1a; 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址访问…

PyQt6 QTimer计时器控件

锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计52条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【什么是泛型,有什么好处】

✅什么是泛型&#xff0c;有什么好处 ✅典型回答✅泛型是如何实现的✅什么是类型擦除&#xff1f;&#x1f4dd;C语言对泛型的支持&#x1f4dd;泛型擦除的缺点有哪些&#xff1f; ✅对泛型通配符的理解&#x1f4dd;泛型中上下界限定符 extends 和 super 有什么区别&#xff1…

汽车服务品牌网站建设的作用是什么

汽车服务涵盖多个层面&#xff0c;在保修维护这一块更是精准到了车内车外&#xff0c;无论是品牌商还是市场中各维修部&#xff0c;都能给到车辆很好的维修养护服务。如今车辆的人均拥有量已经非常高&#xff0c;也因此市场中围绕汽车相关的从业者也比较多。 首先就是拓客引流…

服务器数据恢复-昆腾存储StorNext文件系统下raid5数据恢复案例

服务器数据恢复环境&#xff1a; 昆腾某型号存储&#xff0c;StorNext文件存储系统。 共有9个分别配置了24块磁盘的磁盘柜&#xff0c;其中8个磁盘柜存放普通数据&#xff0c;1个磁盘柜存放元数据。 存放元数据的磁盘柜中的24块磁盘组建了8组RAID1阵列和1组4盘RAID10阵列&#…

CTF学习笔记

笔记下载&#xff1a;https://download.csdn.net/download/qq_48257021/88650265 1.网卡连接模式 1.1桥接模式&#xff1a;&#xff08;自由&#xff09; 将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接&#xff0c;虚拟机中的虚拟网络适配器可通过主机中的物理网…

final前置关键字(和常量)

final 什么是final注意 常量使用常量记录系统配置信息的优势、执行原理 什么是final final关键字是最终的意思&#xff0c;可以修饰&#xff08;类、方法、变量&#xff09;修饰类&#xff1a;该类被称为最终类&#xff0c;不可以再被继承&#xff1b;修饰方法&#xff1a;该方…

Leetcode—43.字符串相乘【中等】

2023每日刷题&#xff08;六十八&#xff09; Leetcode—43.字符串相乘 算法思想 实现代码 class Solution { public:string multiply(string num1, string num2) {int len1 num1.size(), len2 num2.size();string ans;int end1 len1 - 1, end2 len2 - 1;int arr[len1 l…

使用PE信息查看工具和Dependency Walker工具排查因为库版本不对导致程序启动报错问题

目录 1、问题说明 2、问题分析思路 3、问题分析过程 3.1、使用Dependency Walker打开软件主程序&#xff0c;查看库与库的依赖关系&#xff0c;查看出问题的库 3.2、使用PE工具查看dll库的时间戳 3.3、解决办法 4、最后 VC常用功能开发汇总&#xff08;专栏文章列表&…