inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

01-02-emotion JSX와 CSS-IN-JS

css-in-js 질문입니다!!

해결된 질문

339

nyang

작성한 질문수 5

0

안녕하세요!! 수업 잘듣고있습니다.

jsx내에서 div태그 속에 여러 css-in-js 변수들을 입력하려면 어떻게 해야하나요??

아래와 같이 className 방식을 사용했는데 기존 css 방식이어서 안먹히는건가요...?

<ProfileLink>
 <div className={clsx[styles.Click, styles.LinkLight].join(" ")}>
   <img src="/ic_link.png" />
 </div>
 <Click>
   <img src="/ic_location.png" />
 </Click>
</ProfileLink>

react node.js graphql next.js

답변 1

0

노원두

안녕하세요! nyang님!

emotion을 사용하실 때 크게 3가지 방법이 있습니다!

  1. emotion의 css를 활용하시는 방법

  2. styled 태그를 활용하시는 방법

  3. 위 1번과 2번을 결합하여 사용하는 방법!

 

  1. emotion의 css를 활용

    import { css } from '@emotion/react' // 타입스크립트 사용시, tsconfig.json의
                                         // compilerOptions에 추가 설정 요함
                                         //jsxImportSource:"@emotion/react"
    const 나의스타일 = css`            
      background-color: red;        
    `;                              
    
    export default function MyPage(){          
       return <div css={나의스타일}>안녕하세요</div> 
    }                                          

 

  1. styled 태그를 활용

    import styled from '@emotion/styled'
    
    const 나의컴포넌트 = styled.div`
      font-size: 30px;
    `;
    
    export default function MyPage(){
       return <나의컴포넌트>안녕하세요</나의컴포넌트>
    }

     

  2. 위 1번과 2번을 결합

    import { css } from '@emotion/react'
    import styled from '@emotion/styled'
    
    const 나의스타일 = css`
      background-color: red;
    `;
    
    const 나의컴포넌트 = styled.div`
      font-size: 30px;
      ${나의스타일};
    `;
    
    export default function MyPage(){
       return <나의컴포넌트>안녕하세요</나의컴포넌트>
    }

 

따라서, 위 3번 예시를 적용 및 응용하시면 원하시는 결과를 얻을 수 있을 것 같네요!^^

0

nyang

이미지 태그에는 저게 안먹나요?? 알려주신 대로 해봤는데 작동이 안되네요,,

0

노원두

이미지 태그도 정상적으로 작동합니다!
이미지 태그는 위 예제처럼 안녕하세요라는 문장이 들어가면 안돼요!

코드화면:
image
결과화면:
image

만약, 타입스크립트를 사용중이시라면 컴파일 옵션을 변경해 주셔야 합니다!

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

36

1

댓글 기능 구현 중 질문드립니다.

0

66

1

쿠폰코드 발급

0

132

2

example 서버 플레이그라운드, API 접속 모두 안됩니다.

0

86

2

문의드립니다!! ㅠㅠ

0

101

2

graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.

0

76

2

_app.js 작성 이후로 에러가 발생하네요

0

93

2

학습자료

0

70

2

학습자료가 안열립니다.

0

49

2

플레이 그라운드 퀴즈 문제 질문이 있습니다.

0

59

0

기존강의 구매자, 업데이트 끝인가요?

0

109

3

업데이트 버전 수강

0

88

2

완벽한 프론트엔드

0

136

2

나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.

0

82

1

graphql 접속이 안됩니다.

0

100

2

const, let 사용 질문 드립니다.

0

70

2

싸이월드 만들기 1탄 피드백 부탁드립니다.

0

122

2

회원가입 과제 피드백 부탁드립니다.

0

80

2

styled.span / styled.input "CSS 자동완성"

0

47

1

쿠폰 발급 관련

0

166

2

서버 502 error

0

247

2

쿠폰 다시 부탁드려도 될가여?

0

140

2

a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요

0

184

2

2분 44초 질문

0

131

3