2016-06-12 3 views
0

저는 react 및 material-ui를 사용하고 있는데 문제가 생겼습니다. 서랍 구성 요소의 CSS 동작을 정의하고 싶습니다. ClassName 속성을 사용해야하지만 어떤 이유로 작동하지 않습니다. 내가 DIV하지만 여전히 성공하지 서랍을 포장하려서랍 구성 요소의 className이 작동하지 않습니다.

<Drawer open={this.state.isLeftNavOpen} 
          docked={false} 
          className='drawer' 
          onRequestChange={this.changeNavState}> 
         <MenuItem primaryText='Men' 
            onTouchTap={() => browserHistory.push({pathname: '/products', query: {category: MEN}})}/> 
         <MenuItem primaryText='Women' 
            onTouchTap={() => browserHistory.push({pathname: '/products', query: {category: WOMEN}})}/> 
         <MenuItem primaryText='Kids' 
            onTouchTap={() => browserHistory.push({pathname: '/products', query: {category: KIDS}})}/> 
        </Drawer> 

:

.drawer { 
    width: 200px 
} 

.drawer:hover { 
    background-color: black 
} 

여기 서랍 내 사용은 다음과 같습니다

여기 내 CSS입니다.

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

+0

여기를 참조하십시오 : https://github.com/callemall/material-ui/issues/2310, 스타일을 인라인으로 전달해야 할 수도 있습니다. – JordanHendrix

답변

1

라이브러리에 className이 추가 된 것처럼 보이지만이 문제는 추가 한 클래스의 스타일보다 우선적으로 요소에 스타일을 설정하는 결과로 나타납니다. (fiddle)

<Drawer open={this.state.isLeftNavOpen} 
    docked={false} 
    width={200} 
    style={{'background-color': 'black'}} 
    className='drawer'> 

불행하게도 :

1)는 style 및/또는 widthproperties 인라인 폭과 스타일을 설정 라이브러리는 다음과 같은 몇 가지 변경/수정을하게 될 때까지 몇 가지 옵션이 있습니다 그러나이 방법은 :hover 스타일링을 허용하지 않으며, 현재의 인라인 스타일 솔루션은 가까운 미래에 변경 될 수 있습니다 (issue 1951 및 그 뒤 따르는 스타일 참조).

2) 라이브러리에 의해 요소에 설정을 대체 할 !important으로 CSS에서 스타일을 표시 : 즉,이 특정 문제에 대한 순간에 당신의 유일한 솔루션입니다 것을 의미한다 (fiddle)

.drawer { 
    width: 200px !important; 
} 

.drawer:hover { 
    background-color: black !important; 
} 

두 가지를 조합하여 너비를 지주 모양으로 전달하고 호버 배경 스타일 만 사용하면 !important이 될 수 있습니다.

(가장 최근에 사용한 서랍 버전)은 material-ui 글을 쓸 때 가장 쉽게 사용할 수있는 패키지에 있기 때문에 this comment에서 발견되었습니다.

+0

방금 ​​읽은 사진이 더 좋을 것이라고 읽었습니다. 여기에 언급 된대로 구성 요소의 스타일에 관한 솔루션 : https://github.com/callemall/material-ui/issues/4066 그리고 다음 버전 (0.16.0)으로 들어갈 예정이지만, 그 동안에는 무엇을 할 수 있습니까? 나는한다? 중요하지만 사용하지는 않았지만 작동하지 않았다. 아무런 변화도 없었다. – Pachu

+0

CSS _should_ work에서 className prop를'! important'와 함께 사용하면이 [fiddle] (https : // jsfiddle. net/DirectCtrl/6knx4bsc /). 코드 실행과 비슷한 예제를 제공 할 수 있습니까? 구현에 좀 더 구체적 일 수 있습니까? –

+0

어떤 이유인지 그것은 전에는 작동하지 않았지만 이제는 애니메이션을 제외하고는 작동합니다. 다음 예제를 시도 : https://jsfiddle.net/6knx4bsc/3/ 및 애니메이션이 작동하지 않습니다. – Pachu