You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的Media Query无法正确生效?仅最后声明的样式始终生效

媒体查询优先级问题:仅最后声明的规则生效

无论屏幕尺寸如何,只有最后声明的Media Query样式会被应用。比如下面的示例组件中,哪怕屏幕宽度仅为320px,标题文本的颜色始终是绿色。

断点定义

const size = {
    mobileM: '400px',
    mobileL: '480px',
    tablet: '760px',
    laptop: '1280px', 
    desktopM: '1530px',
    desktopL: '1920px',
};

export const devices = {
    mobileM: `(min-width: ${size.mobileM})`,
    mobileL: `(min-width: ${size.mobileL})`,
    tablet: `(min-width: ${size.tablet})`,
    laptop: `(min-width: ${size.laptop})`,
    desktopM: `(min-width: ${size.desktopM})`,
    desktopL: `(min-width: ${size.desktopL})`
};

示例组件

import React from 'react'
import styled from 'styled-components'
import { devices } from '../utils/breakpoints';

function Welcome() {
  return (
    <>
      <HeaderMessage>Welcome</HeaderMessage>
      <BodyText>
        这份问卷用于帮助我们了解你的业务目标与需求,从而为你打造最优解决方案。
      </BodyText>
      
      <BodyText>
        请尽可能详细地填写答案,这能让我们更深入地掌握信息,进而更好地为你提供帮助。
      </BodyText>
      
      <BodyText>
        你可随时点击左上角的返回箭头回到之前的页面修改答案。
      </BodyText>
    </>
  )
}

// font-family: 'Krona One', sans-serif;
// font-family: 'Montserrat', sans-serif;

const HeaderMessage = styled.h1`
  color: #BA3D9C;
  text-transform: uppercase;
  font-family: 'Krona One', sans-serif;
  font-size: 6rem;
  letter-spacing: .5rem;
  margin-top: -13vw;
  margin-bottom: 5rem;
  @media ${devices.mobileM} {
    margin-top: 0;
    color: turquoise;
  }
  
  @media ${devices.mobileL} {
    color: blue;
    font-size: 5rem;
    margin-top: 1rem;
    margin-bottom: 2rem;
  }

  @media ${devices.tablet}{
    color: green;
    font-size: 4rem;
    margin-top: 1rem;
  }
`;

在上述组件中,即便屏幕宽度为320px,标题文本的颜色始终显示为绿色。

内容的提问来源于stack exchange,提问作者Christoper Chamberlain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 02:12:06