带有媒体查询的 ReactJs

ReactJs with media queries

我正在为 multi-function 站点开发一个基础站点应用程序。所以现在我只开发应用程序所在的响应框架。我希望该页面有一个 header 和 3 列(2 个用于广告的横向列和一个用于应用程序的中间列)。 我希望横向列仅出现在 850px 以上的分辨率中。 所以我有以下代码:

App.js:

<...imports, etc ...>
function App() {
    return (
        <Router>
            <Navbar />
            <div className='divAds'>
                <VerticalAd />
                <div className='divMiddle' >
                    <HorizontalAd />
                    <div className="App" >
                        <Switch>
                            <Route exact path="/" component={Main} />
                            <Route exact path="/about" component={About} />
                            <Redirect to="/" />
                        </Switch>
                    </div>
                </div>
                <VerticalAd />
            </div>
        </Router>
    )
}

在 VerticalAd 组件中我有:

import React from 'react'
import VerticalSun from '../../img/sun-vert.jpg';
import { Image } from 'semantic-ui-react'
import './verticalAd.scss'

export const VerticalAd = () => (
    <div className='divVad'>
        <Image src={VerticalSun} rounded alt="Vertical Ad" />
        <Image src={VerticalSun} rounded alt="Vertical Ad" />
        <Image src={VerticalSun} rounded alt="Vertical Ad" />
    </div>

创建了这个页面结构:

所以我希望横向列在移动屏幕上消失所以我有以下 css 到 VerticalAd.scss:

.divVad {
    @media (min-width: 850px) {
        display: block;
    }

    @media (max-width: 849px) {
        display: none;
    }
    
    img {
        width: 10em;
        height: 50em;
    }
}

但垂直列不会在较低分辨率下消失。我做错了什么?

我尝试将@media 查询移动到 App.scss 但也没有用。

我正在使用 Chrome 开发人员工具的响应测试对此进行测试。

编辑

问题出在开发者工具上。 ASAI 通过调整整个浏览器的大小来测试它 window 它工作正常。对不起。 但无论如何...... @Samathingamajig 的回答很有用,我已经接受了。抱歉给您带来不便。

你写媒体查询的方式是错误的;媒体查询在外面,选择器在里面:

.divVad {
    img {
        width: 10em;
        height: 50em;
    }
}

@media (min-width: 850px) {
    .divVad {
       display: block;
    }
}

@media (max-width: 849px) {
    .divVad {
       display: none;
    }
}