当前位置: 首页 > news >正文

JS【实战】CSS 样式相关的处理

CSS 样式键转换

如 fontSize -> font-size

// 函数封装 -- CSS样式键转换,如 fontSize -> font-size
function CSSformatKey(oldKey) {// 查找所有大写字母,转换为 "-小写"const newKey = oldKey.replace(/[A-Z]/g, (c) => `-${c.toLocaleLowerCase()}`);return newKey;
}
let oldKey = 'fontSize';
let result = CSSformatKey(oldKey);
console.log(result);

CSS 样式单位转换

px 转 vw

// 函数封装 -- CSS样式单位转换,如 375px -> 100vw
function px2vw(components = []) {// 正则匹配 '10px' '9.5px',并对数值分组const reg = /^(\d+(\.\d+)?)px$/;components.forEach((component) => {const props = component.props || {};// 遍历组件的属性Object.keys(props).forEach((key) => {const val = props[key];// 非字符串无需转换;if (typeof val !== 'string') {return;}// 无px则无需转换if (reg.test(val) === false) {return;}// 取得匹配的分组,第1项为匹配的所有内容,如375px,第2项为匹配到的px前的数值,如375const arr = val.match(reg) || [];// 提取出数值部分const numStr = arr[1];// 将字符串数值转换为数字const num = parseFloat(numStr);// 因UI图的画布宽度是 375px,即100vw = 375px 则px 转 vw 的公式为  100vw = 375px/375*100const vwNum = (num / 375) * 100;// 避免无法除尽,保留两位小数props[key] = `${vwNum.toFixed(2)}vw`;});});
}let components = [{props: {height: '100px',},},{props: {height: '140px',},},
];
px2vw(components);
console.log(components);

结果为:

[ { props: { height: '26.67vw' } }, { props: { height: '37.33vw' } } ]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue3入门特性
  • Excel 学习手册 - 精进版(包括各类复杂函数及其嵌套使用)
  • ES6 对象的新增方法(十四)
  • Milvus 核心设计(5)--- scalar indexwork mechanism
  • 华为HCIP Datacom H12-821 卷40
  • FPGA上板项目(二)——PLL测试
  • c++单例模式
  • 「Conda」在Linux系统中安装Conda环境管理器
  • python安全脚本开发简单思路
  • SpringBoot+Vue实现简单的文件上传(txt篇)
  • 华为USG6000V防火墙v1
  • 【区块链 + 智慧政务】城市公积金中心区块链基础服务平台 | FISCO BCOS应用案例
  • 网络安全工作者如何解决网络拥堵
  • Centos---命令详解 vi 系统服务 网络
  • 【C语言】深入解析选择排序
  • [译]如何构建服务器端web组件,为何要构建?
  • EventListener原理
  • FineReport中如何实现自动滚屏效果
  • js递归,无限分级树形折叠菜单
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Mithril.js 入门介绍
  • ng6--错误信息小结(持续更新)
  • tensorflow学习笔记3——MNIST应用篇
  • Terraform入门 - 3. 变更基础设施
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Zepto.js源码学习之二
  • 从零开始的无人驾驶 1
  • 对象引论
  • ------- 计算机网络基础
  • 坑!为什么View.startAnimation不起作用?
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 数组的操作
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 我有几个粽子,和一个故事
  • 我这样减少了26.5M Java内存!
  • 一个项目push到多个远程Git仓库
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #mysql 8.0 踩坑日记
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (libusb) usb口自动刷新
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (第61天)多租户架构(CDB/PDB)
  • (分类)KNN算法- 参数调优
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (贪心) LeetCode 45. 跳跃游戏 II
  • (五)Python 垃圾回收机制
  • (转)Oracle 9i 数据库设计指引全集(1)
  • (转)大道至简,职场上做人做事做管理
  • .NET WPF 抖动动画
  • .net 调用php,php 调用.net com组件 --
  • .NET程序集编辑器/调试器 dnSpy 使用介绍