React按设计图比例设置样式

设计图和设备的比例 = 设备宽 / 设计图宽
所有的宽、高、字体大小,都需要使用Number类型
在下方组件中你需要设置(design_width)设计图宽,和(font_family)css字体,你也可以在你的组件中单独设置字体

/** 样式
  <div style={styles.main}></div>
  const styles = StyleShell({
        main:{
            height:100,
            width:500,
            fontSize:15,
            lineHeight:'$f15'
            color:'$125'
        }
    })
 */
const StyleShell = (JSON) => {
    const design_width = 750;//设置设计图宽度
    const font_family = 'Arial,"Microsoft Yahei","微软雅黑"';//设置CSS字体

    const GWidth = document.body.offsetWidth;
    const WLR = GWidth / design_width;
    /** 默认样式 */
    const globals = {
        $125: `rgba(125,125,125,1)`,
        $f15: 15
    }
    for (const objects in JSON) {
        JSON[objects].fontFamily = font_family;
        for (const key in JSON[objects]) {
            if (key === 'lineHeight') {
                JSON[objects]['lineHeight'] = `${JSON[objects][key] * WLR}px`;
            } else if (typeof JSON[objects][key] === 'number') {
                JSON[objects][key] = JSON[objects][key] * WLR;
            } else if (JSON[objects][key] in globals) {
                JSON[objects][key] = globals[JSON[objects][key]]
            }
        }
      }
      return JSON;
    }
    export {
      StyleShell
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿也会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值