이미지 삽입

양은지·2023년 4월 3일
0

React

목록 보기
9/27

background image

<div className="main-bg"></div>
.main-bg {
    height: 300px;
    background-image: url(./img/bg.png);
    background-size: cover;
    background-position: center;
}
  • div 태그에 이미지를 넣어 메인 배너로 활용할 수 있다
    - background-image: url에 원하는 이미지 경로를 입력
    - background-size: 이미지가 어떤 형태로 자동 맞춤 될 것인지 선택, cover는 이미지가 잘리더라도 여백 없이 채워주고 contain은 여백이 있더라도 이미지가 잘리지 않도록 채워준다
    - background-position: cover 속성일 경우 이미지의 어느 위치를 기준으로 이미지를 맞출 건지 정해주는 속성, default로는 왼쪽 상단을 기준으로 하고 center로 바꿀 경우 가운데를 기준점으로 이미지가 채워진다
  • 참고 HTML/CSS background-image

image import

import bg from './img/bg.png';

function App() {
    return (
        <div className="app">
            <div className="main-bg" style={{ backgroundImage: 'url(' + bg + ')' }}>
        </div>
    )
}
  • 위와 같이 bg.png를 import해 style 속성으로 넣어주는 방법도 가능하다

img src

import bg from './img/bg.png'

function App() {
    return (
        <div className="app">
            <img src={bg} width="100%"/>
            <img src="https://codingapple1.github.io/shop/shoes1.jpg" width="80%" />
        </div>
    )
}
  • HTML과 마찬가지로 img src 속성을 통해 이미지 경로를 삽입해 주는 방법도 가능하다
    - 상대 경로는 import 후 src={이미지명}, 절대 경로는 url 그대로 넣어주면 된다

Public 경로

function App(){
    return (
        <div className="app">
            <img src="/image.png" />
            <img src={process.env.PUBLIC_URL + '/image.png'} />
        </div>
    )
}
  • 여러 가지 수정이 필요 없는 static file은 public 폴더에 보관해도 되는데(build 시 압축이 필요 없는 image, txt, json 등의 파일들), public 폴더의 파일들은 build 시 그대로 보존된다
  • public 폴더에 저장한 이미지 파일을 사용할 땐 처럼 /이미지경로 로 사용하면 되며, 따로 import가 필요하지 않다
  • 권장하는 public 경로 사용 방법은 src={process.env.PUBLIC_URL} 을 앞에 불여주는 것인데, ~.com 경로에 리액트 페이지를 배포할 땐 상관 없지만 ~.com/page 경로에 배포할 때는 /image.png 로 사용하면 경로를 찾지 못할 수 있어 상대적인 public 경로를 추가해주는 것이 좋다
profile
eunji yang

0개의 댓글