MapleStory Finger Point

๐Ÿ”ต React

[React] React ์— CSS ์ ์šฉํ•˜๊ธฐ

HYEJU01 2024. 8. 28. 20:27

1. React ์— CSS ์ ์šฉ

 

 

๐Ÿ˜บ ๋ฆฌ์•กํŠธ์— CSS ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž! 

 

 


๐Ÿ“ css ํŒŒ์ผ ์ด๋ฆ„ ๊ทœ์น™

 

์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„์„ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•ด์„œ ๋งŒ๋“ฌ

EX) App.js - App.css

 

 

 

 

๐Ÿ“  ํƒœ๊ทธ์— ์ง์ ‘ ์ง€์ •ํ•˜๊ธฐ

  • ํƒœ๊ทธ์— ์ง์ ‘ ๋””์ž์ธ์„ ์ ์šฉ ํ•  ๋•Œ๋Š” {}๋กœ ๋ฌถ์–ด์ค๋‹ˆ๋‹ค
  • css์†์„ฑ์ค‘ - ์€ ์นด๋ฉœํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

style={{css์†์„ฑ: ๊ฐ’, css์†์„ฑ: ๊ฐ’}}

<p style={{color: 'white', textAlign: 'center'}}>์•ˆ๋…•ํ•˜์„ธ์š”!!</p>

 

 

๐Ÿ“  ์ผ๋ฐ˜ cssํŒŒ์ผ๋กœ ์ ์šฉํ•˜๊ธฐ

  • ์ผ๋ฐ˜CSS๋ฌธ๋ฒ•์œผ๋กœ ๋””์ž์ธ์„ ํ•ด์ฃผ๋ฉด ๋˜๊ณ  import๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.
/* App.css */

.app_header {
    height: 50px;
    line-height: 50px;
    background-color: #000;
    margin: 0;
    padding: 0;
}
//App.js

import './css/App.css'; //์ผ๋ฐ˜cssํŒŒ์ผ๋กœ ๋””์ž์ธ
......์ƒ๋žต

 

 

๐Ÿ“  styled-compenet css๋ชจ๋“ˆ๋กœ ์ ์šฉํ•˜๊ธฐ

  • ํŒŒ์ผ์€ ์ปดํฌ๋„ŒํŠธ๋ช….module.css ํ˜•์‹์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • cssํŒŒ์ผ์€ import๊ตฌ๋ฌธ์œผ๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • ์ด ๋ฐฉ์‹์€ ์„ ํƒ์ž์— ๊ณ ์œ ํ•œ ํ•ด์‹œ๊ฐ’์„ ๋ถ€์—ฌํ•จ์œผ๋กœ ๋‹ค๋ฅธํŒŒ์ผ๊ณผ ๋””์ž์ธ์˜ ์ค‘๋ณต์„ ๋ง‰์•„์ค๋‹ˆ๋‹ค.
  • :global ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ „์—ญ ์„ ํƒ์ž(์ด๋ฆ„) ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
/* App.module.css ํŒŒ์ผ */ 

.app_wrap {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    text-align: center;
    background-color: #fff;
    height: 100vh;
    margin: 0;
    padding: 0;
}

/* ์ „์—ญ์„ ํƒ์ž๋กœ ์ด๋ฆ„์ •ํ•˜๊ธฐ */:global .title {
    color: pink;
    font-weight: 900;
}

 

 

App.js ํŒŒ์ผ

  1. cssํŒŒ์ผ์€ ํŠน์ • ์ด๋ฆ„์œผ๋กœ importํ•ฉ๋‹ˆ๋‹ค.
  2. style={ํŠน์ •์ด๋ฆ„.์„ ํƒ์ž ๋กœ} ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. :global ํ‚ค์›Œ๋“œ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
//**App.js ํŒŒ์ผ**

import styled from './css/App.module.css';//css๋ชจ๋“ˆ๋กœ ๋””์ž์ธconst App = () => {
    return (
        <Fragment>
            <section className={styled.app_wrap}> {/* css๋ชจ๋“ˆ app_wrap์ ์šฉ */}
                 <p className="title">CSS๋ชจ๋“ˆ๋กœ๋””์ž์ธ!</p> {/* css๋ชจ๋“ˆ์˜ ์ „์—ญ์„ ํƒ์ž ์ ์šฉ */}
            </section>
        </Fragment>
    )
}

export default App;

 

 

 

 

๐Ÿ“ publicํด๋”์— css๋””์ž์ธ

 

 

 

 

 

 



[App.js]

 

import './App.css'; //cssํŒŒ์ผ import
import styled from './App.module.css'; //module.css

function App() {

  //1. cssํŒŒ์ผ๋ช…์€ ์ปดํฌ๋„ŒํŠธ์™€ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ

  return (
    <>
      <div className="app-title">
        cssํŒŒ์ผ๋กœ ๋””์ž์ธํ•˜๊ธฐ
      </div>
      
      <div style={{color: 'blue', border: "1px solid #777"}}>
        ์ง์ ‘ ๋””์ž์ธํ•˜๊ธฐ
      </div>

      <div className={styled.app_wrap}>
        <p className={styled.title}>๋ชจ๋“ˆ๋กœ ๋””์ž์ธํ•˜๊ธฐ</p>
        <p className="content">global์†์„ฑ</p>
      </div>

    </>
  )
}

export default App;

 

 


[App.css]

.app-title {
  border : 1px solid red;
  color : red;
}

 

[App.module.css]

.app_wrap {
  border : 1px solid green;
  color : green;
}


.title {
  border : 1px solid #41664b;
  color : #41664b;
}

/* ์ „์—ญ์„ ํƒ์ž๋กœ ์ด๋ฆ„์ •ํ•˜๊ธฐ */:global .content {
  color: pink;
  font-weight: 900;
}