-
[2019.08.21] 오늘의 TIL - [Next.js] Style 주의할 점개발 블로깅/오늘의 TIL 2019. 8. 21. 22:36
Next.js에서 스타일을 추가할 때, 일반적으로 <style jsx> 태그를 써서, 그 안에 CSS 스타일을 쓴다.
예시는 아래와 같다.
<div> <div className='Templet'>Hello~</div> <style jsx> {` .Templet{ width: 100%; height: 100% } `} </style> </div>
태그에 클래스 명을 지정해주고, style jsx라는 태그 사이에 스타일을 작성한다.
그리고 React 특성 상, style jsx 태그를 포함하여 다른 컴포넌트로 전체를 한번 감싸준다. (1번 줄, 맨 마지막 줄의 div)
그러나 이러한 일반적인 스타일 방식이 먹히지 않을 때가 있다.
바로 아래와 같다.
const component = () => { const arr = ['하나', '둘', '셋']; const Temp = arr.map(element => (<div className='Templet'>{element}</div>)); return ( <div> <div> {Temp} </div> <style jsx> {` .Templet{ width: 100%; height: 100% } `} </style> </div> ); }
위 코드를 보면, View 단에 쓸 Temp 컴포넌트를 return 전에 미리 정의해서 사용했다.
저렇게 미리 만들어 놓은 컴포넌트에는 style이 안먹는다....
이유는 모르겠지만... 내 추측에는, component는 return 전에 이미 만들어 놓았고, style jsx은 return할 때 정의되어서 그런 것 같다..
# 추가 주의할 점 - hover
hover는 마우스가 해당 컴포넌트에 올라갔을때 반응하게 하는 스타일이다.
.Temp: hover { background-color: yellow }
일반적으로 hover를 정의할 때, 위 코드와 같다. 클래스 네임 혹은 아이디 뒤에 콜론(:)을 붙이고 뒤에 hover를 쓴다.
그러나 위 코드는 hover가 먹히지 않는다.
hover를 쓰려면 네임과 'hover' 사이에 공백이 있으면 안된다.
정상적인 코드는 아래와 같다.
.Temp:hover { background-color: yellow }
반응형'개발 블로깅 > 오늘의 TIL' 카테고리의 다른 글
[2019.09.01] 오늘의 TIL - node 버전에 변경하는 방법 (0) 2019.09.01 [2019.08.23] 오늘의 TIL - [Next.js] global Style의 이해 (0) 2019.08.23 [2019.08.10] 오늘의 TIL - CRA eject란? (0) 2019.08.10 [2019.07.14] 오늘의 TIL - webpack.config.js의 build 설정 시 주의사항 (0) 2019.07.15 [2019.06.25] PostMan 사용 시 주의사항! (API 요청 시 PostMan에서는 잘 되는데, 웹 브라우저에서 호출 시 안되는 현상) (0) 2019.06.25