scss 中的媒体查询

本文介绍了如何在移动端使用rem单位进行适配,推荐了PostCSS插件pxtorem和lib-flexible工具,并提供了根据不同设计稿尺寸配置的方法和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心代码

$screen-xs: 480px !default;
$screen-xs-min: $screen-xs !default;

// Small screen
$screen-sm: 768px !default;
$screen-sm-min: $screen-sm !default;

// Medium screen
$screen-md: 992px !default;
$screen-md-min: $screen-md !default;

// Large screen
$screen-lg: 1200px !default;
$screen-lg-min: $screen-lg !default;

// 2k
$screen-2k: 1920px !default;
$screen-2k-min: $screen-2k !default;

// 3k
$screen-3k: 2880px !default;
$screen-3k-min: $screen-3k !default;

// 4k
$screen-4k: 3840px !default;
$screen-4k-min: $screen-4k !default;

// So media queries don't overlap when required, provide a maximum
$screen-xs-max: ($screen-sm-min - 1) !default;
$screen-sm-max: ($screen-md-min - 1) !default;
$screen-md-max: ($screen-lg-min - 1) !default;
$screen-lg-max: ($screen-2k-min - 1) !default;
$screen-2k-max: ($screen-3k-min - 1) !default;
$screen-3k-max: ($screen-4k-min - 1) !default;

@media (max-width: $screen-xs-max) {
   width: 100%;
   margin-right: 0;
 }
 @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
   width: calc(100% / 2 - 6px);

   &:nth-of-type(2n) {
     margin-right: 0;
   }
 }
 @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
   width: calc(100% / 3 - 8px);

   &:nth-of-type(3n) {
     margin-right: 0;
   }
 }
 @media (min-width: $screen-lg-min) and (max-width: $screen-lg-max) {
   width: calc(100% / 4 - 9px);

   &:nth-of-type(4n) {
     margin-right: 0;
   }
 }
 @media (min-width: $screen-2k-min) and (max-width: $screen-2k-max) {
   width: calc(100% / 6 - 10px);

   &:nth-of-type(6n) {
     margin-right: 0;
   }
 }
 @media (min-width: $screen-3k-min) and (max-width: $screen-3k-max) {
   width: calc(100% / 8 - 10.5px);

   &:nth-of-type(8n) {
     margin-right: 0;
   }
 }
 @media (min-width: $screen-4k-min) {
   width: calc(100% / 10 - 10.8px);

   &:nth-of-type(10n) {
     margin-right: 0;
   }
 }

移动端Rem 布局适配

如果需要使用 rem 单位进行适配,推荐使用以下两个工具:

1、设计稿尺寸为375时
// postcss.config.js
module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 37.5,
      propList: ['*'],
    },
  },
};
2、设计稿尺寸不为375时

如果设计稿的尺寸不是 375,而是 750 或其他大小,可以将 rootValue 配置调整为:

// postcss.config.js
module.exports = {
  plugins: {
    // postcss-pxtorem 插件的版本需要 >= 5.0.0
    'postcss-pxtorem': {
      rootValue({ file }) {
        return file.indexOf('vant') !== -1 ? 37.5 : 75;
      },
      propList: ['*'],
    },
  },
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值