MapleStory Finger Point

๐Ÿ”ด WEB/๐Ÿ”ต 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;
}