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

日照 网站建设河南seo优化

日照 网站建设,河南seo优化,烟台网站开发公司,怎么做手机版网站背景说明 如果你的 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.qdjiajiao.com/news/6250.html

相关文章:

  • 抚州建设网站影视后期培训机构全国排名
  • 美橙域名查询网站短视频推广公司
  • 专业网站建设公司用织梦吗?北京做seo的公司
  • 30张女性人像摄影作品欣赏seo网站建设优化
  • 鹿泉微信网站建设广告联盟看广告赚钱
  • 应用汇应用商店优化
  • 建筑结构设计软件武汉网站优化公司
  • 保定建网站需要多少钱百度小说排行榜2019
  • 手机网站制作软件写软文怎么接单子
  • 昆山网站建设第一品牌传统营销和网络营销的区别
  • 网站建设教学视频网站查询域名解析
  • wordpress怎么上传高清图片大小四川旅游seo整站优化
  • 网站在线qq客服系统昆明网络推广
  • 湿地公园网站建设内部搜索引擎优化
  • 团购网站推广怎么做怎么快速推广app
  • 麻涌企业网站建设网络推广费用一般多少
  • 有道网站提交入口常见的网络推广方式有哪些
  • 杭州网站建设公司官网百度识图网站
  • 专业网站推荐上海百度推广平台
  • 深圳产品网站建设百度推广区域代理
  • 外贸网站建设制作百度网站提交收录入口
  • 网站开发bug制作网页的工具软件
  • 花卉网站建设推广今日新闻最新头条
  • dedecms网站制作教程自建站平台
  • 邢台企业网站制作建设如何在百度提交自己的网站
  • 个人备案域名可以做哪些网站线上广告平台
  • 网站设计风格介绍免费b站推广网站
  • 做网站的哪个好广州seo排名收费
  • 赌博网站做代理微信群卖房卡宣传软文模板
  • 二级医院做网站百度seo服务