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.mzph.cn/news/241298.shtml

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

相关文章

Vue+ElementUI+nodejs学生宿舍报修管理系统68ozj

本站是一个B/S模式系统&#xff0c;采用vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得学生宿舍信息管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中…

实用干货:公司规定所有接口都用 POST请求,为什么?

大家好&#xff0c;我是大澈&#xff01; 本文约1000字&#xff0c;整篇阅读大约需要2分钟。 感谢关注微信公众号&#xff1a;“程序员大澈”&#xff0c;免费领取"面试礼包"一份&#xff0c;然后免费加入问答群&#xff0c;从此让解决问题的你不再孤单&#xff01…

在k8s中使用Helm安装harbor并将Chart推送到私有仓库harbor

使用Helm安装harbor并将Chart推送到私有仓库harbor 注意&#xff1a;如果你的harbor是之前docker-compose安装的&#xff0c;还需要额外做一个动作&#xff0c;让它支持chart docker-compose stop ./install.sh --with-chartmuseum1&#xff09;下载harbor的chart包 Harbor的…

「数据结构」二叉树2

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;初阶数据结构 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 文章目录 &#x1f349;前言&#x1f349;链式结构&#x1f349;遍历二叉树&#x1f34c;前序遍历&#x1f34c;中序遍历&#x…

MySQL升级版本(Linux环境)

摘要 由于我们在做部署的时候会部署MySQL&#xff0c;但是版本可能各种各样&#xff0c;而且我们服务器会定期的进行漏洞扫描&#xff0c;因此我们在遇到MySQL的相关漏洞时&#xff0c;一般漏洞报告中会提示出解决方案&#xff0c;一般来时就是升级软件的版本&#xff0c;因此…

C# WPF上位机开发(从demo编写到项目开发)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 C# WPF编程&#xff0c;特别是控件部分&#xff0c;其实学起来特别快。只是后面多了多线程、锁、数据库、网络这部分稍微复杂一点&#xff0c;不过…

CAD制图

CAD制图 二维到三维 文章目录 CAD制图前言一、CAD制图二、机械设计三、二维图纸四、三维图纸总结前言 CAD制图可以提高设计效率和准确性,并方便文档的存档和交流,是现代工程设计中不可或缺的一部分。 一、CAD制图 CAD(Computer-Aided Design)是利用计算机技术辅助进行设计…

欠采样对二维相位展开的影响

1.前言 如前所述&#xff0c;相位展开器通过计算两个连续样本之间的差来检测图像中包裹的存在。如果这个差值大于π或小于-π&#xff0c;则相位展开器认为在这个位置存在包裹。这可能是真正的相位包络&#xff0c;也可能是由噪声或采样不足引起的伪包络。 对欠采样的相位图像…

【自营版】物流系统+取件员收件员/运营级快递系统小程序源码

后端php前端原生小程序 mysql数据库 主要功能&#xff1a; 寄快递 查快递 多门店 市内取送 取件员中心在线接单 提前预约 也可 立即下单 门店入住 取件员入住

交叉熵损失(Cross-Entropy loss)

在处理机器学习或深度学习问题时&#xff0c;损失/成本函数用于在训练期间优化模型。目标几乎总是最小化损失函数。损失越低&#xff0c;模型越好。交叉熵损失是最重要的成本函数。它用于优化分类。对交叉熵的理解取决于对 Softmax 激活函数的理解。 一、softmax激活函数 激活…

屏幕颜色吸取器

前言 屏幕颜色吸取器。 前端工程师的福音&#xff0c;获取全屏幕上所有位置的颜色。 运行在window上的软件 屏幕颜色吸取器 前言1 下载解压2 使用 1 下载解压 下载地址&#xff1a;https://download.csdn.net/download/qq_44850489/11943229 下载下来之后解压 如下图&#…

python算法例23 落单的数Ⅰ

1. 问题描述 给出2n1个非负整数元素的数组&#xff0c;除其中一个数字之外&#xff0c;其他每个数字均出现两次&#xff0c;找到这个数字。 2. 问题示例 给出[1&#xff0c;2&#xff0c;2&#xff0c;1&#xff0c;3&#xff0c;4&#xff0c;3]&#xff0c;返回4。 3. 代…

使用函数式接口对代码简化,完成代码重复性使用

&#x1f4da;目录 &#x1f4da;简介&#x1f4a8;优化前原代码:⚙️ 函数编程简化&#x1f384; JDK自带的函数式接口✨ 改造调用方式&#x1f38a; 时间范围执行&#x1f389;时间范围每天执行 &#x1f4da;简介 因为公司的使用Xxl-Job作为任务调度平台,其中我们大部分的报…

camera同步信号

基本概念 PCLK&#xff1a;pixel clock是像素点同步时钟信号, 主频。也就是每个PCLK对应一个像素点。 HSYNC&#xff1a;horizonal synchronization是行同步信号&#xff0c;水平同步信号。就是在告诉接收端&#xff1a;“HSYNC”有效时段内接收端接收到的所有的信号输出属同…

系列二十八、如何在Oracle官网下载JDK的api文档

一、官网下载JDK的api文档 1.1、官网地址 https://www.oracle.com/java/technologies/javase-jdk21-doc-downloads.html 1.2、我分享的api.chm 链接&#xff1a;https://pan.baidu.com/s/1Bf55Fz-eMTErmQDtZZcewQ?pwdyyds 提取码&#xff1a;yyds 1.3、参考 https://ww…

C语言——高精度除法

一、引子 1、引言 高精度除法相较于加减乘法更加复杂&#xff0c;它需要处理的因素更多&#xff0c;在这里我们先探讨高精度数除以低精度数&#xff0c;即大数除小数。这已满足日常所需&#xff0c;如需大数除以大数&#xff0c;可以使用专门的库&#xff0c;例如&#xff1a…

Angular 11到升级到 Angular 16

日新月异&#xff0c;与时俱进… 随着Angular版本不断更新&#xff0c;再看所开发的项目版本仍然是Angular 11&#xff0c;于是准备升级 截止发博日最版本是 v17.1.0&#xff0c;考虑到稳定性因素决定升级到v16版本 一&#xff1a;查看 升级指南 二&#xff1a;按照指南&…

推荐算法架构7:特征工程(吊打面试官,史上最全!)

系列文章&#xff0c;请多关注 推荐算法架构1&#xff1a;召回 推荐算法架构2&#xff1a;粗排 推荐算法架构3&#xff1a;精排 推荐算法架构4&#xff1a;重排 推荐算法架构5&#xff1a;全链路专项优化 推荐算法架构6&#xff1a;数据样本 推荐算法架构7&#xff1a;特…

数据校园服务管理系统,教育平台可视化界面(教育资源信息化PS文件)

大屏组件可以让UI设计师的工作更加便捷&#xff0c;使其更高效快速的完成设计任务。现分享大数据校园服务管理系统、科技教育平台大数据可视化界面、教育资源信息化大数据分析等Photoshop源文件&#xff0c;文末提供完整资料&#xff0c;供UI设计师们工作使用。 若需其他 大屏…

Linux一行命令配置jdk环境

使用方法&#xff1a; 压缩包上传 到/opt, 更换命令中对应的jdk包名即可。 注意点&#xff1a;jdk-8u151-linux-x64.tar.gz 解压后名字是jdk1.8.0_151 sudo tar -zxvf jdk-8u151-linux-x64.tar.gz -C /opt && echo export JAVA_HOME/opt/jdk1.8.0_151 | sudo tee -a …