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

日照 网站建设万能搜索引擎入口

日照 网站建设,万能搜索引擎入口,博物馆设计,网站分析怎么做背景说明 如果你的 Ant Design Vue 项目有要做适配的需求,那首先要选择一种适配方案。笔者选择的是用 postcss-px2rem 进行适配。笔者在配置了 postcss-px2rem的相关配置后,发现 postcss-px2rem 没有对 Ant Design Vue 进行适配。在网上看了一些文章之后…

背景说明

如果你的 Ant Design Vue 项目有要做适配的需求,那首先要选择一种适配方案。笔者选择的是用 postcss-px2rem 进行适配。笔者在配置了 postcss-px2rem的相关配置后,发现 postcss-px2rem 没有对 Ant Design Vue 进行适配。在网上看了一些文章之后,发现想对 Ant Design Vue 进行适配需要走它自己的规则:给 a-style-provider 组件传入 transformerspropsAnt Design Vue 官方自己提供了一套 transformers 方法,用这套方法可以对大于1px的单位进行转换,而不凑巧的是笔者的项目有对1px进行适配的需求,所以笔者必须解决这个问题。

解决方案

不直接用官方的方案,而是用官方方案的修改版。

编写一个px2rem的方法,然后在 a-style-provider 里引进去。

// 这应该是一个文件,例如px2Rem.ts
import unitless from '@emotion/unitless'
export interface Options {/*** The root font size.* @default 16*/rootValue?: number/*** The decimal numbers to allow the REM units to grow to.* @default 5*/precision?: number/*** Whether to allow px to be converted in media queries.* @default false*/mediaQuery?: boolean
}const pxRegex = /url\([^)]+\)|var\([^)]+\)|(\d*\.?\d+)px/gfunction toFixed(number: number, precision: number) {const multiplier = Math.pow(10, precision + 1),wholeNumber = Math.floor(number * multiplier)return (Math.round(wholeNumber / 10) * 10) / multiplier
}const transform = (options: Options = {}): Transformer => {const { rootValue = 16, precision = 5, mediaQuery = false } = optionsconst pxReplace = (m: string, $1: any) => {if (!$1) return mconst pixels = parseFloat($1)if (pixels < 1) return mconst fixedVal = toFixed(pixels / rootValue, precision)return `${fixedVal}rem`}const visit = (cssObj: any): any => {const clone: any = { ...cssObj }Object.entries(cssObj).forEach(([key, value]) => {if (typeof value === 'string' && value.includes('px')) {const newValue = value.replace(pxRegex, pxReplace)clone[key] = newValue}// no unitif (!unitless[key] && typeof value === 'number' && value !== 0) {clone[key] = `${value}px`.replace(pxRegex, pxReplace)}// Media queriesconst mergedKey = key.trim()if (mergedKey.startsWith('@') && mergedKey.includes('px') && mediaQuery) {const newKey = key.replace(pxRegex, pxReplace)clone[newKey] = clone[key]delete clone[key]}})return clone}return { visit } as Transformer<any, any>
}export default transform

App.vue该如下

import px2rem from "./px2Rem.ts" // 自行修改
<template><a-config-provider><a-style-provider :transformers="[px2rem]"><component /></a-style-provider></a-config-provider>
</template>
http://www.wangmingla.cn/news/156251.html

相关文章:

  • 云服务器建网站seo教程 seo之家
  • 全国二级建造师查询网站百度旗下有哪些app
  • 附近短期电脑培训班网站优化推广哪家好
  • 网站升级中模板游戏推广员判几年
  • 长安网站建设工作总结免费seo快速排名工具
  • 扁平化个人网站网站关键词挖掘
  • 美食杰网站的建设目的培训机构还能开吗
  • 做百科专用参考链接的网站石家庄关键词排名首页
  • 手机软件网站网络营销顾问
  • 做网站套餐2023年12月疫情又开始了吗
  • 邢台做移动网站的地方优化seo
  • 国外h5建站seo发贴软件
  • 做网站的心得体会关键词快速上首页排名
  • 美国有网站建设公司吗营销宣传图片
  • 百度地图排名怎么优化冯耀宗seo课程
  • 白洋湾做网站公司提升排名
  • 博罗做网站报价企业如何进行网站推广
  • 长春新建高铁站长沙企业网站建设报价
  • 做网站软件美国疫情最新数据消息
  • 企业官网网站建设seo公司网站
  • 简单网站首页怎么做网络推广渠道都有哪些
  • 福州网站建设优化方案模板
  • 网站建设步骤及分工广告宣传网站
  • 电子商务网站建设的目的和作用数据分析方法
  • 川畅互联咨询 网站建设郑州有没有厉害的seo
  • 政府网站需求分析百度指数搜索榜
  • 域名有关的网站网络营销措施有哪些
  • 电子商务官方网站建设seo在线教程
  • 优的网站建设大连谷歌seo
  • html做的好看的网站百度seo白皮书