简体   繁体   English

我的某些媒体查询工作,另一些则不行,不知道为什么

[英]Some of my Media Queries Work, Other's do not, No Idea Why

Like the title states, I have a number of media queries and only some of them work. 像标题状态一样,我有很多媒体查询,但只有其中一些有效。 They all follow the same principal, at a certain screen width hide one thing and replace it with another. 它们都遵循相同的原理,在一定的屏幕宽度下隐藏一件事,然后用另一件事替换它。

I am using React.js, Redux, React-Materialize and Express.js. 我正在使用React.js,Redux,React-Materialize和Express.js。 Below I have included all 3 relevant files of code, Nav.jsx, SideNav.jsx and the relevant media queries. 下面,我包括了所有3个相关的代码文件Nav.jsx,SideNav.jsx和相关的媒体查询。

Nav.jsx Nav.jsx

Note: 注意:

Focus on className='sidenav' , className='nav-menu' for what doesn't work Focus on className='space', id='nav-title1' and id='nav-title2' for what does work 专注于className ='sidenav',className ='nav-menu'来解决无效的内容专注于className ='space',id ='nav-title1'和id ='nav-title2'来解决问题

import React, { Component } from 'react';
import { Navbar, NavItem, Row, Col, Dropdown, Button } from 'react-materialize';
import SideNavv from './SideNav.jsx';

class Nav extends Component {
  render() {
    return (
      <Row>
        <div className='blue darken-2 white-text'>
          <a href="#" id='nav-title1' className="nav-title brand-logo white-text">Late File Tax Return Specialists</a>
          <a href="#" id='nav-title2' className="nav-title brand-logo white-text">Late File Specialists</a>
          <nav left className='blue darken-2 white-text' id='nav'>
            <SideNavv className='sidenav'/>
            <Dropdown className='nav-menu' trigger={
                <Col className='blue white-text nav-menu'>About Our Firm</Col>
              }>
              <NavItem className='blue white-text nav-menu'>###-###-####</NavItem>
              <NavItem className='blue white-text nav-menu'>email</NavItem>
              <NavItem className='blue white-text nav-menu'>address</NavItem>
            </Dropdown>
            <Col className='space'>a</Col>
            <Dropdown className='nav-menu' trigger={
                <Col className='blue white-text nav-menu'>Available Tax Services</Col>
              }>
              <NavItem className='blue white-text nav-menu'>###-###-####</NavItem>
              <NavItem className='blue white-text nav-menu'>email</NavItem>
              <NavItem className='blue white-text nav-menu'>address</NavItem>
            </Dropdown>
            <Col className='space'>a</Col>
            <Dropdown className='nav-menu' trigger={
                <Col className='blue white-text nav-menu'>Business / Individuals</Col>
              }>
              <NavItem className='blue white-text nav-menu'>###-###-####</NavItem>
              <NavItem className='blue white-text nav-menu'>email</NavItem>
              <NavItem className='blue white-text nav-menu'>address</NavItem>
            </Dropdown>
            <Col className='space'>a</Col>
            <Dropdown className='nav-menu' trigger={
                <Col className='blue white-text nav-menu'>Resources</Col>
              }>
              <NavItem className='blue white-text nav-menu'>###-###-####</NavItem>
              <NavItem className='blue white-text nav-menu'>email</NavItem>
              <NavItem className='blue white-text nav-menu'>address</NavItem>
            </Dropdown>
            <Col className='space'>a</Col>
            <Dropdown className='nav-menu' trigger={
                <Col className='blue white-text nav-menu'>Get In Touch With Us</Col>
              }>
              <NavItem className='blue white-text nav-menu'>###-###-####</NavItem>
              <NavItem className='blue white-text nav-menu'>email</NavItem>
              <NavItem className='blue white-text nav-menu'>address</NavItem>
            </Dropdown>
          </nav>
        </div>
      </Row>
    )
  }
}

export default Nav;

SideNav.jsx SideNav.jsx

Note: 注意:

Focus on id='open-sidebar' for what doesn't work 专注于id ='open-sidebar'无效的内容

import React, { Component } from 'react';
import { SideNav, SideNavItem, Button } from 'react-materialize';

class SideNavv extends Component {
  render() {
    return (
      <SideNav
        trigger={<Button id='open-sidebar' icon='menu'></Button>}
        options={{ closeOnClick: true }}
        >
        <SideNavItem userView
          user={{
            background: 'public/concert.jpg',
            image: 'public/mic.jpg',
            name: 'John Doe',
            email: 'example@gmail.com'
          }}
        />
        <SideNavItem waves href='#!' icon='info_outline'>About Our Firm</SideNavItem>
        <SideNavItem waves href='#!' icon='description'>Available Tax Services</SideNavItem>
        <SideNavItem waves href='#!' icon='perm_identity'>Business / Individuals</SideNavItem>
        <SideNavItem waves href='#!' icon='language'>Resources</SideNavItem>
        <SideNavItem waves href='#!' icon='contacts'>Get In Touch With Us</SideNavItem>
      </SideNav>
    )
  }
}

export default SideNavv;

Media Queries 媒体查询

Note: @media .space works but even though it is in the same query, .nav-menu does not 注意:@media .space有效,但是即使在同一查询中,.nav-menu也不起作用

@media #nav-title1 and #nav-title2 is a perfect example that works @media#nav-title1和#nav-title2是一个很好的例子

@media #open-sidebar and .sidenav (which are really the same thing) do not work at all @media#open-sidebar和.sidenav(实际上是同一件事)根本不起作用

#nav-title1 {
  display: none;
  transition: 300ms;
}
@media (max-width : 799px) {
  #nav-title2 {
    display: none;
    transition: 300ms;
  }

  #nav-title1 {
    display: initial;
    transition: 300ms;
  }
}

.nav-menu, .space {
  display: initial !important;
  transition: 300ms;
}
@media (max-width: 850px) {
  .space, .nav-menu {
    display: none !important;
    transition: 300ms;
  }
}

#open-sidebar, .sidenav {
  visibility: visible;
  transition: 300ms;
}
@media (min-width: 800) {
  #open-sidebar, .sidenav {
    visibility: hidden;
    transition: 300ms;
  }
}

通过查看CSS代码,似乎最后一个媒体查询在800的末尾没有"px"

Refer to this comment by Lev, 请参阅列夫的评论,

Hey, I have compiled this code and reviewed it and It works properly. 嘿,我已经编译了这段代码并对其进行了审核,它可以正常工作。 I think the reason why you are confused is because react-materialize library is creating additional div, that acts as trigger div/btn that your css is not targeting. 我认为您感到困惑的原因是因为react-materialize库正在创建其他div,该div用作您的css未定位的触发器div / btn。 In other words you are only targeting .nav-menu, .space but not the additional markup that react outputs. 换句话说,您仅针对.nav-menu,.space,而不针对反应输出的其他标记。 If you inspect your code you will see this div that comes before nav-menu and it does not have the same classes. 如果您检查代码,则会看到该菜单位于nav-menu之前,并且它没有相同的类。 Available Tax Services – lev yesterday 可用的税收服务–昨天征收

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM