🌎 Web/CSS

[CSS] background img 꽉차게 채우는 법

오늘 ONEUL 2022. 3. 25. 03:22

배경 이미지를 화면에 꽉 차게 채워야 하는 경우가 종종 있다. 원하는 조건은 다음과 같다.

  • 화면에 보이는 전체 페이지를 여백 없이 이미지로 채우기
  • 필요에 따라 이미지 크기 조정
  • 이미지의 중앙 부분
  • no 스크롤바

 

여러 방면으로 시도해 본 결과 2가지 방법이 가장 유용했다.

 

1. <html> 태그 이용하기

html { 
  background: url(img.jpg) no-repeat center fixed;
  background-size: cover;
}
  • <html> 태그는 최소한 브라우저 창의 높이다.
  • backgroun 속성은 background에 관련된 속성 값을 한 번에 적을 수 있다.
  • 순서대로 background-repeat, background-position, background-attchment
  • background-size: cover; 는 따로 적어준다.
  • <body> 태그에 적용해도 무방하다.

 

 

 

 

2. <div> 태그 이용하기

body {
  margin: 0;
}

.wrap {
  background: url(img.jpg) no-repeat center fixed;
  background-size: cover;
  height: 100vh;
}
  • 전체 내용을 <div> 태그로 감싸고 class 값을 부여한다. (여기서는 class="wrap")
  • 주의할 점은 <body> 태그가 기본으로 가지는 margin 값을 0으로 설정해주어야 한다.
  • <div> 태그에 높이 설정이 되어 있어야 한다. 100vh는 뷰포트 기준 전체 페이지다.
  • 그 외에 나머지 태그는 1번과 동일하다.

 

추가로 반응형 작업 혹은 콘텐츠의 양이 많아 스크롤이 생기는 경우,

적용된 height 값이 뷰포트 기준이기 때문에 아래쪽으로 여백이 생겨버린다.

이럴 때는 min-height: 100vh; 를 적용하면 간단하게 해결된다!