Language/CSS,HTML
react에서 text길이에 따라서 css 속성 변경
건담아빠
2023. 7. 26. 11:29
js에서 비교문을 넣지 않고 text의 길이에 따라서 css 속성을 변경하려고 하는데 구글링해도 입맛에 맞는 마땅한게 없어 보여서 직접 잔머리좀 굴려 보았다.
CSS
css에서 data-length 값에 따라 css속성을 부여한다.
...
.wrap > :global(.global-header) .new-count[data-length="1"] { left: 25px; }
.wrap > :global(.global-header) .new-count[data-length="2"] { left: 23px; }
.wrap > :global(.global-header) .new-count[data-length="3"] { left: 20px; }
...
JS
css 판단할 수 있도록 text의 길이를 data-length에 넣어준다.
...
const Home = (props) => {
...
const unreadNotificationCount = my?.UNREAD_NOTIFICATION_CNT;
return (
...
<img className={cx('alarm')} src="/images/button_title_bell_off_gray100_48.svg"></img>
{unreadNotificationCount > 0 && (
<span className={cx('new-count')} data-length={unreadNotificationCount.toString().length}>
{unreadNotificationCount > 99 ? 99 + '+' : unreadNotificationCount}
</span>
)}
...
);
};
export default Home;
아래와 같이 결과물이 완성되었다.!
짝짝!