티스토리 뷰

목차

     

     

    오랜만에 포트폴리오를 만지니깐

    포스팅할 아이템도 더 눈에 띈다.

    잠시 거리를 두고 보는 것은 이러한 장점이 있다.

    createElement 태그 스타일 변경

    일단 createElement 함수에 대해 모르는 사람은 알아보고 오자!

     

     

    JS로 태그 추가하기

    목차 저번 포스트에서 태그 추가하는 법을 지나치듯 짚고 넘어갔었다. SVG Z-index 목차 SVG SVG는 백터 로 이미지 를 표현하는 태그 이다. 이런 식으로 html 그리기 Svg / Canvas SVG 데이터 전달용을 목표

    sirong.tistory.com

    글이 80개 정도 쌓이니깐 슬슬 기초적인 건 다 적어놨다고 생각하는 게 편하다.

    인용할 때도 그렇고, 포스팅 주제 찾을 때도 그렇고.

     

     

    함수로 element를 만들었을때 해당 태그 스타일을 변경하는 것은 살짝 까다롭다.

    태그 스타일을 정의할수도 없어서 동적 스타일을 할 수도 없다.

     

    styled components 심화편

    목차 styled components 심화편 React의 styled components 심화 편이다. 설치와 기본적 사용은 이 글을 참고하자. styled component 목차 ... styled-component에 대해 쓸려고 기본적 구글링을 하는데 혼란스러웠..

    sirong.tistory.com

    그래서 가장 편한건 className추가하는 것이다.

    코드

    //App.js
    import React from "react";
    import styled from 'styled-components';
    
    function App() {
      return (
        <>
          <D_styled>
            {
              React.createElement(
                "div",{
                  id: "id",
                  className: "class",
                  onMouseEnter: (() =>{
                      document.getElementById(`id`).classList.add('mouseEnter');
                  }),
                  onMouseLeave: (() =>{
                    document.getElementById(`id`).classList.remove('mouseEnter');
                  }),
                }
              )
            }
          </D_styled>
        </>
      );
    }
    
    const D_styled = styled.div`
      .class{
        width: 100px;
        height: 100px;
        background:orange;
      }
    
      .mouseEnter{
        background: red;
      }
    `;
    
    export default App;

    해석

    일단 기본적인 코드를 알고 가자

    //App.js
    import React from "react";
    import styled from 'styled-components';
    
    function App() {
      return (
        <>
          <D_styled>
            {
              React.createElement(
                "div",{
                  id: "id",
                  className: "class",
                }
              )
            }
          </D_styled>
        </>
      );
    }
    
    const D_styled = styled.div`
    
    `;
    
    export default App;

    으음 대충 이 정도 일려나

    D_styled라는 스타일 정의 태그를 styled-components로 만들어내서 추가하였고,

    그 안에 함수로 태그를 생성하였다.

     

    자 이제 내가 어떠한 상황일 때 태그 스타일을 변경하고 싶다.

    //App.js
    import React from "react";
    import styled from 'styled-components';
    
    function App() {
      return (
        <>
          <D_styled>
            {
              React.createElement(
                "div",{
                  id: "id",
                  className: "class",
                  onMouseEnter: (() =>{	// 마우스가 해당 태그 영역안에 들어갔을때
                    document.getElementById(`id`).classList.add('mouseEnter');
                    // 태그중 'id'라는 id를 가진 태그를 찾아
                    // mouseEnter이라는 className을 추가한다.
                  }),
                  onMouseLeave: (() =>{ // 마우스가 해당 태그 영역밖으로 나갔을때
                    document.getElementById(`id`).classList.remove('mouseEnter');
                    // 태그중 'id'라는 id를 가진 태그를 찾아
                    // mouseEnter이라는 className을 제거한다.
                  }),
                }
              )
            }
          </D_styled>
        </>
      );
    }
    
    const D_styled = styled.div`
      .class{	// class라는 className을 가진 태그에 스타일 추가
        width: 100px;
        height: 100px;
        background:orange;
      }
    
      .mouseEnter{	// mouseEnter라는 className을 가진 태그에 스타일 추가
        background: red;
      }
    `;
    
    export default App;

    onMouseEnter라는 속성 안에

    document.getElementById(`id`).classList.add('mouseEnter');

    를 추가하였다.

     

    마우스가 해당 태그 영역 안에 들어갔을 때,

    `id`라는 id를 가진 태그를 찾아,

    'mouseEnter'이라는 className을 추가한다.

     

    그러면 부모 태그 D_styled 스타일에서

    자식중 .mouseEnter 라는 className을 가진 태그는

    background를 red로 바꾸라고 설정해놨기 때문에,

    배경색이 바뀐다.

    '웹개발(프론트) > React' 카테고리의 다른 글

    자료형 검사하기  (0) 2021.04.24
    React cookie  (0) 2021.04.20
    styled components 심화편  (0) 2021.04.17
    Redux Toolkit  (0) 2021.04.15
    Redux by react  (0) 2021.04.14
    댓글
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    «   2025/01   »
    1 2 3 4
    5 6 7 8 9 10 11
    12 13 14 15 16 17 18
    19 20 21 22 23 24 25
    26 27 28 29 30 31
    글 보관함