rem自适应解决方案·px2rem-loader&hotcss

设计师一般只提供一套尺寸的设计稿,如何实现一套代码实现多端自适应?

效果演示

假设一份宽度为640px(iphone5)的设计稿,一个元素宽度为:320px,通过px2rem-loader&hotcss.js实现代码只有width: 320px,就实现在任何尺寸的屏幕下都占屏幕的1/2。

width: 320px;
height: 320px;
复制代码

上图可以看出,通过px2rem-loader自动将320px转化为8rem。

width: 8rem;
复制代码

hotcss.js则在html标签中添加了

<html lang="en" data-dpr="2" max-width="540" style="font-size: 40px;">
复制代码

head标签中添加了

<meta name="viewport" content="width=device-width, initial-scale=0.5, minimum-scale=0.5, maximum-scale=0.5, user-scalable=no">
复制代码

当尺寸换为iphone6时,可以看到宽度依然为8rem,而实际尺寸则变为375px。

配置

安装px2rem-loader

npm i px2rem-loader

在style-loader、css-loader后使用px2rem-loader。

{
    loader: 'px2rem-loader',
    options: {
        remUnit: 40,
        remPrecision: 8
    }
}
复制代码

通过script标签或import等方式引入hotcss.js,尽量靠前引入。

总结

通过这样的方式,只需要一套代码,就可以实现多终端自适应,而css数值可以与设计稿保持一致。

转载于:https://juejin.im/post/5ad9a694f265da0b7a203f9b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 HTML 中使用 postcss-pxtorem 实现自适应屏幕的步骤如下: 1. 安装 postcss-pxtorem 插件: 可以使用 npm 安装:`npm install postcss-pxtorem --save-dev` 2. 在项目中创建 postcss.config.js 文件: 在项目根目录下新建一个 postcss.config.js 文件,用于配置 postcss-pxtorem 插件。 ```javascript module.exports = { plugins: { "postcss-pxtorem": { rootValue: 16, // 根字体大小,16px 为默认值 propList: ["*"] // 需要转换的 CSS 属性,默认为 ['*'] } } }; ``` 3. 在项目中安装并使用 postcss-loader: postcss-loader 可以帮助我们在构建项目时自动运行 postcss 插件。 可以使用 npm 安装:`npm install postcss-loader --save-dev` 在 webpack 配置文件中添加 postcss-loader: ```javascript module.exports = { module: { rules: [ { test: /\.css$/, use: [ "style-loader", "css-loader", { loader: "postcss-loader", options: { ident: "postcss", plugins: [require("postcss-pxtorem")()] } } ] } ] } }; ``` 4. 在 CSS使用 px 单位编写样式: 在 CSS使用 px 单位编写样式,postcss-pxtorem 插件会自动将其转换为 rem 单位。 例如,假设设计稿中某个元素的宽度为 100px,那么在 CSS 中可以这样写: ```css .box { width: 100px; } ``` 在 postcss-pxtorem 插件的转换下,该样式会被转换为: ```css .box { width: 6.25rem; /* 假设根字体大小为 16px */ } ``` 通过以上步骤,就可以在 HTML 中使用 postcss-pxtorem 实现自适应屏幕了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值