首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react js中使用Radium

如何在react js中使用Radium
EN

Stack Overflow用户
提问于 2021-02-19 23:37:54
回答 1查看 31关注 0票数 0

我试着使用radium react js来赋予风格,但它不起作用

这是Nav.css

代码语言:javascript
复制
nav{
    width: 15%;
    height: auto;
    display:block; 
    background-color: #282c34;      
}    

nav a{  
    display: block;    
    text-decoration: none;
    color: #ffff; 
    padding: 10px;  
}

nav a:hover{
    background-color: #414753;   
}

这是nav.js

代码语言:javascript
复制
import React from 'react';
import Radium from 'radium';
import './Nav.css';

function Nav(open){

    const StyleCompleted =  { 
        '@media screen and (maxWidth: 700px)':{
            backgroundColor: 'yellow',
            left: open.open ? "0" : "-100%" ,
            position: 'fixed',
            width: '100%',
            display: 'flex',
            flexDirection: 'column',
            justifyContent: 'flex-start',
            alignItems: 'center',
            textAlign: 'center',
            height: '90vh',
            transition: 'left 0.3s linear'
        }
    } 

    return (       
        <nav className="navbar" style={StyleCompleted}> 
            <a className="link" href="#"> Link </a>
            <a className="link" href="#"> Link </a>
            <a className="link" href="#"> Link </a>
            <a className="link" href="#"> Link </a>                      
        </nav>
    )

}

export default Radium(Nav);

这是app.js

代码语言:javascript
复制
import {Component, useState, React} from 'react';
import Radium, {StyleRoot} from 'radium';
import logo from './logo.svg';
import './App.css';
import Nav from './Component/Nav/Nav';
import MenuButton from './Component/Nav/MenuButton';

class App extends Component {

  constructor(props) {
    super(props);
    this.state = {
      open: false
    };
  }

  render(){
    return (
      <StyleRoot>
      <div className="App">          
        <header className="App-header">
          <div className="App-header-company">
            <img className="App-logo" src={logo}  alt="logo" />
          </div>          
          <div className="App-header-btnMenu" onClick={() => this.setState({ open: !this.state.open })}>
            <MenuButton open={this.state.open} /> 
          </div>
        </header>
        <div className="content">             
          <Nav open={this.state.open} />                               
        </div>      
      </div>
      </StyleRoot>
    );
  }    
}

export default Radium(App);

所以,我想做一个导航响应,所以当@媒体屏幕和(maxWidth: 700px)时,导航将自动隐藏,所以当媒体屏幕大于700px时,导航工作正常,但低于700px的导航不是隐藏的,所以我认为这个const StyleCompleted = { '@media screen and (maxWidth: 700px)':{.....} }不工作,为什么?

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 00:54:34

我下定决心,把这个改成“为了这个”

如下所示:

代码语言:javascript
复制
const StyleCompleted = { 
    "@media(max-width: 700px)":{
        left: open.open ? "0" : "-100%" ,
        position: "fixed",
        width: "100%",
        display: "flex",
        flexDirection: "column",
        justifyContent: "flex-start",
        alignItems: "center",
        textAlign: "center",
        height: "90vh",
        transition: "left 0.3s linear"
    }
} 

我认为threre是‘和’之间的不同用法

一些事情,但是它有时会发生在我们身上

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66280553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档