배경(background) 스타일을 위한 주요 CSS 속성 정리
이번 포스팅에서는 배경을 스타일할 때 잘 정리해두면 두고두고 요긴하게 쓸 수 있는 CSS 속성에 대해서 알아보겠습니다.
background-color
배경 관련 CSS 속성 중 가장 많이 사용되는 것은 아마도 배경색을 지정할 때 사용하는 background-color
일 것입니다.
div {
background-color: pink;
}
기본값은 transparent
, 즉 투명이며 색상명이나 색상 코드를 사용할 수 있습니다.
일반적으로 배경색은 웹 접근성(accessibility)을 준수하기 위해서 글자색과의 명암비를 고려해서 결정을 하는데요. 시력이 안 좋으신 분들도 텍스트를 인식하는데 어려움이 없도록 하기 위함입니다.
또한 배경 이미지를 사용하더라도 클라이언트에서 이미지를 로딩할 수 없는 상황을 대비하여 가급적 배경색도 지정해주는 것이 권장됩니다.
background-image
두 번째로 살펴볼 속성은 베경 이미지를 지정할 때 사용하는 background-image
입니다.
div {
background-image: url("https://via.placeholder.com/100x50");
}
기본값은 none
, 즉 없음이며 이미지의 위치를 상대 경로 또는 절대 경로를 통해서 나타낼 수 있습니다.
속성값을 명시할 때는 url()
함수를 사용하며, 경로에 공백나올 것을 대비하여 쌍따옴표로 묶어주는 것이 안전합니다.
background-repeat
background-repeat
속성은 배경 이미지가 주어진 영역에 꽉 차지 않는 경우 이미지를 반복할 방식을 결정합니다.
기본값은 repeat
인데 배경 이미지를 가로와 세로 모든 방향으로 반복을 해줍니다.
repeat-x
는 가로 방향으로만 repeat-y
는 세로 방향으로만 배경 이미지를 반복합니다.
no-repeat
는 반복을 원하지 않을 때 사용합니다.
background-position
background-position
속성은 배경 이미지가 주어진 영역에서 어디에 위치할지를 결정합니다.
이 속성은 background-repeat
속성을 no-repeat
로 설정해놓고 사용하는 게 일반적인데요.
배경 이미지가 반복된다면 위치를 지정하는 게 큰 의미가 없어지기 때문입니다.
기본값은 배경 이미지를 좌측 상단에 위치시켜 주는 0% 0%
이며 절대/상대 단위를 사용하여 좌측 상단으로 부터 얼마나 떨어져야하는지를 지정할 수 있습니다.
보통 top
, bottom
, left
, right
, center
와 같은 방향 키워드가 많이 사용됩니다.
background-size
background-size
속성은 배경 이미지의 크기를 결정합니다.
기본값은 auto
인데 배경 이미지의 실제 크기를 사용합니다.
절대/상대 단위를 사용해서 특정값을 지정해줄 수 있으며, 주어진 영역에 따라 이미지의 크기를 자동으로 조절해주는 키워드도 있습니다.
cover
키워드는 배경 이미지가 짤리더라도 주어진 영역을 완전히 덮을 수 있도록 이미지를 크기를 맞춰줍니다.
contain
키워드는 빈 공간이 생기더라도 배경 이미지가 주어진 영역에 안에 모두 들어올 수 있도록 이미지의 크기를 맞줘줍니다.
참고로 이 속성 값으로 cover
를 사용할 때는 background-position
속성을 center
로 설정하는 경우가 많은데요.
그러지 않으면 이미지의 중앙이 좌측상단으로 치우쳐져서 어색해보일 수 있기 때문입니다.
div {
background-position: center;
background-size: cover;
}
background-attachment
background-attachment
속성은 스크롤 시 배경 이미지가 주어진 영역과 함께 따라갈지 그대로 있을지를 결정합니다.
scroll
키워드를 사용하면 배경 이미지가 주어진 영역과 함께 스크롤되고, fixed
키워드를 사용하면 배경 이미지가 주어진 영역이 스크롤되더라도 고정됩니다.
background
마지막으로 살펴볼 속성은 지금까지 살펴본 모든 속성을 아우를 수 있는 background
단축(shortcut) 속성입니다.
이 속성을 활용하면 배경 스타일을 위해서 작성해야하는 CSS 코드를 줄일 수 있는데요.
아래와 같이 background
속성에 여러 가지 값을 짬뽕해서 넘기더라도 대부분의 경우 잘 작동을 하기 때문입니다.
div {
background: green;
}
div {
background: url("test.jpg") repeat-y;
}
div {
background: no-repeat center/80% url("../img/image.png");
}
하지만 협업 프로젝트에서는 동료 개발자들이 스타일을 이해하는데 어려움을 겪을 수도 있습니다. 뿐만 아니라 단축 속성을 사용하면 의도치 않게 속성값들이 초기화되는 문제도 있으니 남용하지 않는 것이 좋겠습니다.
마치면서
이상으로 배경 스타일을 위해서 자주 사용되는 CSS 속성을 간단히 한 번 정리해 보았습니다. 다른 속성도 있지만, 이 정도만 잘 조합해서 활용하시면 왠만한 배경을 제어하는 데 큰 문제가 없으실 거에요.