본문 바로가기
React

React(49) 타입스크립트 - CSS 속성을 동적으로 변경하기

by 새발개발JA 2021. 9. 25.
반응형

토글 메뉴가 열렸을 때와 닫혔을 때, border-bottom 의 두께를 다르게 변경하고 싶다. 

백문이 불여일견 ! 결과화면을 먼저 살펴보자.

 

결과화면 미리보기

- 토글 메뉴가 열렸을 때, 빨간박스 안의 border-bottom이 연하다.

 

- 토글 메뉴가 닫혔을 때, 연했던 border-bottom 이 진해졌다.

 

 


React(49) 타입스크립트 - CSS 속성을 동적으로 변경하기

 

List.tsx

리액트 컴포넌트 내에서 useState 로 선언한 closeList 라는 상태변수를 이용하면 변경 가능하다.

먼저 closeList 라는 변수를 useState 를 통해 선언해주자. 

const [closeList, setCloseList] = useState<boolean>(false);

 

 

위에서 선언한 closeList가 로직에 의해서 true 로 바뀌면 클래스 이름은 동적으로 변경된다.

- closeList 가 true 일 때, 

className = 'divider' 으로 변화가 없고 

 

- closeList 가 false 일 때, 

className = 'divider open' 으로 변경된다. open 이라는 클래스가 활성화 되면서  open 클래스에 해당하는 css 속성이 적용된다.

<div className={`divider ${closeList ? '' : 'open'}`}></div>

 

 

List.css

- open 클래스가 추가되면 밑줄이 없어진다

.divider {
  border-bottom: 1px solid #dbdee2;
}

.divider.open {
  border-bottom: 0;
}

 

 

 

 

 

 

 

반응형

댓글