프론트엔드✏️/개인공부

[css] 자릿수 계산하기,,, 고정되지 않은 width값 transition 주는 방법 알고 싶다.

당근먹는하니 2022. 9. 27. 12:49
728x90
반응형

 별점 매기는 컴포넌트

width값이 고정되어 있지 않고, padding값만 고정된 상태로 만들어 달라는 요청을 받았다. 

(원래는 width가 2.5의 width에 맞춰져있어서 padding이 고정이 아니였다.)

 

 

padding값을 주고, width는 isOn이 false일 땐 값을 안주려고 했더니 transition이 안 먹는다. 

 

width: ${(props: IRatingBtnProps) => (props.isOn ? "160px" : "")};

auto로 해도 안 먹는다.

100%로 하면 버벅인다.

 

transition은 두 상태 사이에 점진적인 값이 있을 때 가능하다고 한다. 

즉 visibility 같은 경우엔 visible, hidden 값이 두 개 뿐이기 때문에 안된다고 한다! 

 

결국 쓴 방법은

<S.RatingButton
        isOn={isOn}
        action={isOn ? false : props.action}
        onMouseOver={() => setIsHover(true)}
        onMouseOut={() => setIsHover(false)}
        count={String(count).length > 1}
      >
  width: ${(props: IRatingBtnProps) => (props.isOn ? "160px" : props.count ?  "74px" :  "61px")};

문자열로 바꿨을 때 자릿수가 1이 넘으면 74px, 넘지 않으면 61px로 하는 방법을 썼다...ㅠ_ㅠ

(소수점 한 자리까지 잘랐을 때만 되는 방법ㅎ)

 

일단 잘 되지만, 뭔가 다른 좋은 방법이 있을 것 같다. 

728x90
반응형