학원/복기

[CSS] 배경 관련 스타일 속성

조가루 2023. 5. 30. 23:31

배경 관련 스타일 속성


background-color 

: 배경색 관련 스타일 속성 - 색 관련 속성값 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CSS</title>
<style type="text/css">
body { 
	background-color: silver;
}

div {
	margin:0 auto;
	width: 50%;
	height: 150px;
	border: 1px solid red;
	font-size: 30px;
	background-color: #ff0; 
}

table {
	margin: 10px auto;
	width: 50%;
}

th {
	color: #fff;
	background-color: #0c5775; 
}

tr:nth-child(2n-1) { /* tr에 적용하면 상속으로 인해 td에 적용된다. */
	background-color: lime;
}

tr:nth-child(2n) {
	background-color: aqua;
}


</style>
</head>
<body>
	<h1>배경 관련 스타일 속성</h1>
	<hr>
	<div>배경색을 설정해 보세요.</div>
	<hr>
	<table>
		<tr>
			<th>번호</th><th>이름</th><th>주소</th>
		</tr>
		<tr>
			<td>1000</td><td>홍길동</td><td>서울시 강남구</td>
		</tr>
		<tr>
			<td>2000</td><td>임꺽정</td><td>부산시 사하구</td>
		</tr>
		<tr>
			<td>3000</td><td>전우치</td><td>수원시 팔달구</td>
		</tr>
		<tr>
			<td>4000</td><td>일지매</td><td>부천시 원미구</td>
		</tr>
		<tr>
			<td>5000</td><td>장길산</td><td>인천시 남동구</td>
		</tr>
	</table>
</body>
</html>


background-image

  • 배경 이미지 관련 스타일 속성
  • 속성값 : url 함수를 사용하여 이미지 파일의 URL 주소 설정 
    → 배경 이미지가 박스모델의 폭 또는 높이보다 작은 경우 가로 방향(X) 또는 새로 방향(Y)으로 이미지가 반복 출력된다.

background-repeat

  • 배경 이미지의 반복관 관련된 스타일 속성
  • 속성값 : repeat(기본), repeat-x, repeat-y, no-repeat 

배경 이미지가 박스모델의 폭 또는 높이보다 큰 경우 박스모델을 벗어난 이미지는 잘려서 출력처리 된다. 

<title>CSS</title>
<style>
body {
	background-image: url("/web/css/images/bg-img1.png");
	background-repeat: no-repeat;
}

div {
	margin: 0 auto;
	width: 80%;
	height: 400px;
	border: 1px solid red;
	/*bg-img2 이미지의 높이가 1199px이고, 박스모델의 높이는 400px 이기 때문에 잘려서 출력된다.*/
	background-image: url("/web/css/images/bg-img2.png"); 
}
</style>
</head>  
<body>
	<h1>배경 관련 스타일 속성</h1>
	<hr>
	<div></div>
</body>


박스모델의 폭 또는 높이보다 작은 배경이미지를 반복 출력하지 않은 경우 배경 이미지는 박스모델의 왼쪽 상단을 기준으로 출력된다.

background-position 

  • 배경 이미지의 출력 위치 관련 스타일 속성
  • 속성값 : px, %, 키워드(left, right, top, bottom, center) - 기본값 : left top (왼쪽 상단) 
<title>CSS</title>
<style>
div {
	margin: 0 auto;
	width: 50%;
	height: 300px;
	border: 1px solid red;
	/* 박스모델의 폭 또는 높이보다 작은 배경이미지를 반복 출력하지 않은 경우 배경 이미지는
	박스모델의 왼쪽 상단을 기준으로 출력된다.*/
	background-image: url("/web/css/images/bg.png");
	background-repeat: no-repeat;
	
	/*background-position: 200px 100px; /* X(가로)방향으로 200px, Y(세로)방향으로 100px 이동 */
	/*background-position: 30%, 60% */
	/* background-position: center; */ /*배경 이미지의 출력 위치를 키워드가 가르키는 위치로 이동해 출력 */
	background-position: right bottom; /* 오른쪽 하단으로 이동 */ 
}
</style>
</head>
<body>
	<h1>배경 관련 스타일 속성</h1>
	<hr>
	<div>오늘은 화요일 입니다. 내일은 쉬는 날입니다.</div>
</body>
</html>


background-attachment

  • 배경 이미지 고정 관련 스타일 속성
  • 속성값 : scroll(기본값 - 스크롤), fixed(브라우저 고정)

background

: 배경 관련 모든 스타일 속성값을 설정할 수 있는 속성 

<title>CSS</title>
<style type="text/css">
body {
	background-image: url("images/bg.png");
	background-repeat: no-repeat; 
	background-position: right bottom;  
	background-attachment: fixed; 
	
	background: url("images/bg.png") no-repeat right bottom fixed;  
}
</style>
</head>
<body>
	<h1>배경 관련 스타일 속성</h1>
	<hr>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
	<p>브라우저에 출력될 아주 중요한 내용입니다.</p>
</body>

 

오른쪽 하단에 이미지가 고정되어 출력되는 것을 확인할 수 있다.


background-size : 배경 이미지의 크기 관련 스타일 속성

  • 속성값이 auto(기본값)일 경우, 배경 이미지를 그대로 출력한다.(여백이 발생하거나 이미지가 잘린다.)
  • 속성값을 이용해 배경 이미지의 폭을 px 단위로 변경 - 이미지 비율에 맞게 높이는 자동 변경된다.
  • 속성값을 이용해 배경 이미지의 폭과 높이를 px 단위로 변경
  • 속성값을 이용해 배경 이미지의 폭을 % 단위로 변경 - 이미지 비율에 맞게 높이는 자동 변경된다.
  • 속성값을 이용해 배경 이미지의 폭과 높이를 % 단위로 변경
  • contain : 배경 이미지의 폭과 높이 중 차이가 작은 부분을 100%로 설정 - 차이가 큰 부분은 여백 발생
  • cover : 배경 이미지의 폭과 높이 중 차이가 큰 부분을 100%로 설정 - 차이가 작은 부분은 잘림 발생

border는 박스모델의 외곽을 뜻한다. 

background-clip

  • 배경 이미지의 적용범위 관련 스타일 속성
  • 속성값
    • border-box(기본값) - 외곽선 바깥쪽
    • padding-box - 외곽선 안쪽
    • content-box - 내용 출력 영역 
<title>CSS</title>
<style>
div {
	width : 400px;
	margin: 10px;
	padding: 20px;
	border: 10px solid red;
	background: url("/web/css/images/bg.png") no-repeat right bottom;
}

.clip1 { background-clip: border-box; } 
.clip2 { background-clip: padding-box; } 
.clip3 { background-clip: content-box; } 
</style>
</head>
<body>
	<body>
	<h1>배경 관련 스타일 속성</h1>
	<hr>
	<div class="clip1">
		<p>border box</p>
		<p>border box</p>
		<p>border box</p>
		<p>border box</p>
		<p>border box</p>		
	</div>
	<div class="clip2">
		<p>padding box</p>
		<p>padding box</p>
		<p>padding box</p>
		<p>padding box</p>
		<p>padding box</p>
	</div>
	<div class="clip3">
		<p>content box</p>
		<p>content box</p>
		<p>content box</p>
		<p>content box</p>
		<p>content box</p>
	</div>
</body>

 


background 속성값으로 linear-gradient 함수를 사용할 수 있다.

linear-gradient

  • 엘리먼트에 선형 그라데이션 효과를 제공하는 함수
  • 그라데이션(Gradation) 효과 : 색이 한쪽 방향으로 일정하게 변화되어 출력되는 효과
  • 형식) linear-gradient(진행방향, 시작색, 종료색)
    → 진행방향 : 각도(deg), 키워드(to left, to right, to top, to bottom)
  • 시작색 뒤에 중간색 표현이 가능하다 - 중간색에는 백분율을 사용하면 된다
  • 중간색에 백분율이 생략된 경우에 50%로 자동 처리 된다.


radial-gradient

  • 엘리먼트에 원형 그라데이션 효과를 제공하는 함수
  • 형식) radial-gradient(모양, 시작색, 종료색) 
    • 모양 : circle(원),ellipse(타원)
       → 원의 중심 위치는 박스모델의 가운데로 설정 
       → 특정 브라우저에서 원의 중심위치 변경이 가능하다.

CSS 표준규약에 정의되어 있지 않고, 특정 웹브라우저에서만 사용 가능한 스타일 속성값이 존재한다.
-webkit- : 웹킷 방식의 웹브라우저 - 크롬, 사파리, 엣지 등 
-moz- : 개코 방식의 웹브라우저 - 파이어폭스, 모질라 등 
-o- : 오페라 방식의 웹브라우저 - 오페라 등 
-ms- : 트라이던트 방식의 웹브라우저 - IE 등 

ex)

background: -webkit-radial-gradient(70% 70%, circle, white, blue);

 

>> webkit 브라우저에서만 가능

<title>CSS</title>
<style type="text/css">
div {
	width: 500px;
	height: 300px;
	border: 1px solid black;
	margin: 20px;
}

/*linear-gradient*/
.grad1 {
	background: linear-gradient(45deg, red, white);
	background: linear-gradient(135deg, blue, white);
	background: linear-gradient(to bottom, green, white);	 
	/*시작색 뒤에 중간색 표현이 가능*/
	background: linear-gradient(225deg, olive, white 30%, olive);
	/*중간색에 백분율이 생략된 경우에 50%로 자동 처리*/	 
	background: linear-gradient(to right, yellow, orange, red);	 
}

/*radial-gradient*/ 
.grad2 {
	background: radial-gradient(circle, white, blue);
	/*CSS 표준규약에 정의되어 있지 않고, 특정 웹브라우저에서만 사용 가능한 스타일 속성값이 존재*/
	background: -webkit-radial-gradient(70% 70%, circle, white, blue);
	background: radial-gradient(ellipse, white, orange 30%, red);
	background: radial-gradient(ellipse, white, aqua, blue);
}
</style>
</head>
<body>
	<h1>배경 관련 스타일 속성</h1>
	<hr>
	<div class="grad1"></div>
	<div class="grad2"></div>
</body>