- 배경색과 배경 이미지: background-color, background-image
- 배경색은 필요시 원하는 요소에서 각각 따로 지정해주어야 하는데, 배경에 설정하는 색상은 (패딩 영역에서 시작하여 컨텐츠 영역까지에 걸쳐)해당 요소 뒤에서 보여진다:
-
배경 이미지는 배경색 위에 배치되며(배경색을 가린다!), 테두리에 의해 가려지게 된다.
,로 구분하여 다수의
url("이미지"), url("이미지2"), ..
식으로 배경 이미지를 복수로 지정해줄 수도 있다 - 이 경우, 나중에 나오는 이미지가 위쪽으로 겹쳐지면서 쌓인다. 또한, 배경 이미지에는url("이미지")
만 아니라 그라디언트 배경도 넣어줄 수 있다!
블록레벨 요소 <p>의 배경색 대 인라인 요소 <span>의 배경색
블록레벨 요소 <p>의 배경색과 배경 이미지
☞ 지정한 이미지가 불투명해서 아래의 배경색이 나타나지 않을지라도, 배경색을 함께 지정해주는 것이 좋다 - 이미지를 불러올 수 없는 상황에서 배경색이 이미지를 대체할 수 있기 때문이다!
- 배경 이미지의 반복: background-repeat
-
배경 이미지의 크기가 배경을 채우려는 요소보다 작은 경우; 기본적으로는 가로/세로로 반복해서 채워지는데(기본값: repeat),
background-repeat
속성에 round 값을 주어 이미지가 잘리지 않게 크기를 조절하여 반복하거나, space 값을 주어 끝에서 끝까지 고르게 분배해줄 수도 있다. 또는,background-repeat: repeat-x/y;
값을 주어 원하는 반복 방향을 지정해주거나 no-repeat 값을 주어 반복하지 않도록 설정해줄 수도 있다:
- 배경 이미지 위치 지정하기: background-position
-
background-position: x, y;
(콤마로 구분된 하나 이상의 값이 들어간다) 속성으로 배경 이미지 배치의 시작 지점을 설정해줄 수 있다. 값 으로는 키워드(top/right/bottom/left
및center
)나 px, %를 쓸 수 있는데, 키워드와 숫자 등을 혼합하여 쓸 수도 있다 ← 기본값은 좌상단 모서리인 0, 0(= left top)인데, 양수는 오른쪽 및 아래쪽 방향이 되며, 음수는 그 반대 방향이 된다!
background-image: url("_images/블렌딩모드-매화.jpg"); background-color: #d1e2f0;
background-position: right bottom; background-repeat: no-repeat;
background-position 값
이 위치 지정 방식은 상당히 복잡하고 혼란스러워 간략히만 살펴보니.. 배경 이미지 관련 더 세밀한 조정이 필요해지면; MDN)의 Background-position 문서를 참조하시기 바랍니다 ㅡㅡ;
/* 올바른 사용 */
background-position: left top; /* 좌상단 모서리 ← 기본값(0 0)이다! */
background-position: top left; /* 좌상단 모서리 ← 서로 다른 축인 경우; 순서는 상관없다! */
background-position: left 50%; /* 좌단 가운데 */
background-position: center left; /* 좌단 가운데 ← left(및 left center)와 같다! */
background-position: right; /* 우단 가운데 ← 키워드 하나만 쓰면; 생략된 값에는 50%(center)가 들어간다! */
background-position: center; /* 박스 정중앙 ← center 하나는 박스 정중앙이 된다! */
background-position: bottom 70% right; /* 하단으로부터 70% 위 & 우단 */
background-position: right bottom 70%; /* 우단 & 하단으로부터 70% 위 */
background-position: bottom 70% right 30%; /* 하단으로부터 70% 위 & 우단으로부터 30% 앞 */
background-position: top 10px right 20px; /* 상단에서 10px 아래 & 우단으로부터 20px 앞 */
/* 잘못된 사용 */
background-position: 50% left; /* 무슨 50%인지? ← 방향 키워드가 앞에 와야 한다! */
background-position: left right; /* 동일한 y축이다! */
- 배경 이미지 부착: background-attachment
-
background-attachment: scroll/fixed/local;
(기본값: scroll) 속성을 사용하면 배경 레이어가 화면에 표시된 후 배경 이미지(백그라운드 레이어의 일부 이미지)의 고정 위치 동작을 수정할 수 있는데, fixed 값은 배경을 뷰포트에 대해 고정한다 ← 곧, 해당 요소에 스크롤이 존재해도, 또 바깥 컨테이너 요소가 스크롤되어도 배경은 함께 스크롤되지 않으면서, 항시 자신의 원래 자리를 고수한다!
- 배경 영역 설정: background-origin, background-clip
-
기본적으로 배경 이미지는 이미지의 (실제)너비와 높이 및 자연스러운 가로/세로 비율을 유지하면서,
이미지의 좌상단으로부터 시작하여 박스를 다 덮을 때까지 채워지는데,
background-origin: border-box/padding-box/content-box;
속성은 해당 박스와 연결된 배경 영역을 설정해준다.
이는 또한, background-clip: border-box/padding-box/content-box;
속성과도 연관되어 있다:
➥
background-clip
속성에는 컨텐츠 박스 내의 텍스트를 넘치지 않도록 배경을 자르는 text 값도 있는데,
이 효과가 적용되기 위해서는 대상 텍스트가 부분적으로 또는 완전히 투명해야 한다:
🐱 🐶
.text_box_ex {
background-image: url("_images/남산부석-large.jpg");
background-clip: text;
color: transparent; /* 텍스트는 부분적으로 또는 완전히 투명해야한다! */
}
- 백그라운드 사이징: background-size
-
기본적으로 배경 이미지는 이미지의 (실제)너비와 높이 및 자연스러운 가로/세로 비율을 유지하면서,
이미지의 좌상단으로부터 시작하여 박스를 다 덮을 때까지 채워진다.
background-size
속성값에는 배경 이미지의 실제 크기를 변경할 수 있는 가로 세로 크기값(단위는 px이나 %)을 사용할 수 있는데, 기본값인 auto는 이미지의 자연스러운 가로/세로 비율을 유지하면서 필요에 따라 크기가 조정된다:
➥
background: 값[, 값, ..];
형식으로 배경 스타일을 일괄 설정해줄 수도 있는데(생략된 부분은 기본값으로 간주된다!),
지켜야하는 순서와 규칙도 좀 있고, 코드 읽기에도 많이 혼란스러우니 각각의 속성별로 개별적으로 설정해주는 것을 권합니다..