[React] React CSS 적용 방법

React의 CSS를 맞추는 방법의 종류에 대해 공부했을 때의 메모입니다.

이번에 적용되는 CSS는 모두 다음 스타일로 통일되어 있습니다.



InlineStyle


export const InlineStyle = () => {

  const contaierStyle = {
    border: "solid 2px #329eff",
    borderRadius: "20px"
    padding: "8px",
    margin: "8px"
  }

  return (
    <div style={contaierStyle}>
      <p>スタイル</p>
    </div>
  )
}
  • 컴퍼넌트내에 스타일을 기술해 가는 React가 디폴트로 제공하고 있는 방법.
  • CSS 프로퍼티는, 캬멜 케이스 캐릭터 라인과 같이 "" 로 둘러싸 , 로 단락짓는다.

  • CSSModules


    import classes from "./CssModules.module.scss";
    
    export const CssModules = () => {
      return (
        <div className={classes.container}>
          <p>スタイル</p>
        </div>
      );
    };
    
    .container {
      border: solid 2px #329eff;
      border-radius: 20px;
      padding: 8px;
      margin: 8px;
    }
    
  • CSS를 다른 파일로 잘라서 import하는 방법.
  • 잘라내는 CSS 파일명에는 module를 붙인다.
  • CSS를 작성하는 방법은 일반 CSS를 작성하는 방법과 동일합니다.
  • node-scss를 설치하여 사용할 수 있습니다.

  • Styled JSX


    export const StyledJsx = () => {
      return (
        <>
          <div className="container">
            <p>スタイル</p>
          </div>
    
          <style jsx="true">
            {`
              .container {
                border: solid 2px #329eff;
                border-radius: 20px;
                padding: 8px;
                margin: 8px;
              }
            `}
          </style>
        </>
      );
    };
    
  • JSX 안에서 스타일을 쓰는 방법.
  • 디폴트라고 hover 등의 의사 요소는 사용할 수 없다.
  • Next.js에 표준 탑재되어 있다.
  • styled-jsx를 설치하여 사용할 수 있습니다.

  • Styled-Components


    import styled from "styled-components";
    
    export const StyledComponents = () => {
      return (
        <Container>
          <p>スタイル</p>
        </Container>
      );
    };
    
    const Container = styled.div`
      border: solid 2px #329eff;
      border-radius: 20px;
      padding: 8px;
      margin: 8px;
    `;
    
  • 스타일로 맞춘 컴퍼넌트를 맞추는 방법.
  • 컴포넌트 파일에서 styled-components 를 import해야 한다.
  • styled-components를 설치하여 사용할 수 있습니다.

  • 쓰는 방법의 궁리


    import styled from "styled-components";
    
    export const StyledComponents = () => {
      return (
        <SContainer>
          <STitle>スタイル</STitle>
        </SContainer>
      );
    };
    
    const SContainer = styled.div`
      border: solid 2px #329eff;
      border-radius: 20px;
      padding: 8px;
      margin: 8px;
    `;
    
    const STitle = styled.p`
      color: red;
    `;
    

    컴퍼넌트명의 머리글자를 S로 하는 것으로 확실히 보아 스타일을 맞추고 있는 컴퍼넌트라고 알기 때문에 이 쓰는 방법은 추천.

    이모션


  • Emotion은 여러가지 쓰는 방법이 있는 방법.
  • 1행째에 /** @jsx jsx */ 라고 쓸 필요가 있다.
  • @emotion/react@emotion/styled를 설치해야합니다.

  • CSS와 같은 글쓰기를 할 수 있는 방법


    /** @jsx jsx */
    import { jsx, css } from "@emotion/react";
    
    export const Emotion = () => {
    
      const containerStyle = css`
        border: solid 2px #329eff;
        border-radius: 20px;
        padding: 8px;
        margin: 8px;
      `;
    
      return (
        <div css={containerStyle}>
          <p>スタイル</p>
        </div>
      );
    };
    

    인라인 스타일과 비슷한 쓰기


    /** @jsx jsx */
    import { jsx, css } from "@emotion/react";
    
    export const Emotion = () => {
    
      const containerStyle = css({
        border: "solid 2px #329eff",
        borderRadius: "20px",
        padding: "8px",
        margin: "8px"
      });
    
      return (
        <div css={containerStyle}>
          <p>スタイル</p>
        </div>
      );
    };
    

    styled-component와 비슷한 쓰기


    /** @jsx jsx */
    import { jsx, css } from "@emotion/react";
    import styled from "@emotion/styled";
    
    export const Emotion = () => {
      return (
        <SContainer>
          <p>スタイル</p>
        </SContainer>
      );
    };
    
    const SContainer = styled.button`
      border: solid 2px #329eff;
      border-radius: 20px;
      padding: 8px;
      margin: 8px;
    `;
    

    참고

    좋은 웹페이지 즐겨찾기