본문 바로가기

스터디/React

리액트에서 인라인 스타일 작성하는 방법

반응형

| CSS 적용 방법

알다시피 CSS를 적용하는 방법에는 세 가지가 있다.

 

1. 인라인 스타일 : html태그마다 style속성으로 CSS 코드를 작성하는 방식

<p style=”color: tomato;”>내용</p>

2. 내부 스타일 시트 : head태그 안에 style태그를 넣어 태그 안에 css 코드를 작성하는 방식

<head> <style> .title { color: tomato; } </style></head>

3. 링킹 스타일 시트 : 외부 .css 파일에 css코드를 작성한 뒤, html 문서에 연결하는 방식

<link rel=”stylesheet” href=”./style.css”>

 

| JSX 문법으로 인라인 스타일 작성하기

이 중 첫 번째 방법인 인라인 스타일을 리액트에서 JSX 문법으로 작성할 때 주의해야 할 사항이 있다.

그것은 바로 ‘중괄호를 2개 써야 한다는 것’ !!

 

예를 들어, 아래와 같이 버튼 컴포넌트를 만들고

style 속성을 작성할 때,

다음과 같이 작성하면 오류가 난다.

function Btn({text}) {
    
    return <button
      onClick={changeValue}
      style={  /*에러*/
        backgroundColor: "tomato",
        color: "white",
        padding: "10px 20px",
        border: 0,
        borderRadius: 10,
      }>
      {text}
    </button>
  }

onClick 버튼과 같은 다른 속성들과는 다르게

style속성은 중괄호{}를 2개씩 써줘야 에러가 나지 않는다.

function Btn({text}) {
    
    return <button
      onClick={changeValue}
      style={{
        backgroundColor: "tomato",
        color: "white",
        padding: "10px 20px",
        border: 0,
        borderRadius: 10,
      }}>
      {text}
    </button>
  }

 

| style 속성에 중괄호를 2개씩 쓰는 이유

style 속성은 중괄호 2개로 감싸줘야 하는 이유는 object 타입을 {중괄호}로 묶어주어야 하기 때문이다.

즉 가장 안쪽 중괄호는 object타입을 묶어주는 역할을 한다.

그리고 바깥쪽 중괄호는 변수를 묶어주는 역할을 하는 것이다.

 

따라서 Button 컴포넌트 코드는 다음과 같이 작성할 수도 있다.

function Btn({text}) {
    
    return <button
	  onClick={changeValue}
      style={{
        backgroundColor: "tomato",
        color: "white",
        padding: "10px 20px",
        border: 0,
        borderRadius: 10,
      }}>
      {text}
    </button>
  }
function Btn({text}) {
    const buttonStyle = {
	  backgroundColor: "tomato",
      color: "white",
      padding: "10px 20px",
      border: 0,
      borderRadius: 10,
	}

    return <button
	  onClick={changeValue}
      style={buttonStyle}>
      {text}
    </button>
  }

 

| 스타일 내용을 작성할 때 주의사항

1. 리액트에서는 스타일 이름을 camelCase로 작성해야 한다.

    backgroundColor (O)

    background-color (X)

2. 단위를 생략할 수 있다.

    다른 단위(em, rem, %)를 쓰고 싶을 때는 명시해주면 된다.

    fontSize: “50”이라고 작성해도 에러는 안 나지만 default는 px이다.

'스터디 > React' 카테고리의 다른 글

React Ref 개념과 사용하는 방법  (0) 2024.03.05
CSS 라이브러리를 사용하는 이유 (css scope)  (0) 2024.03.02
JSX란? / JSX 문법 정리  (0) 2023.08.11