Chap 10-3 CSS 고급 선택자
CSS 고급 선택자
5. CSS 함수 살펴보기
1. :root 가상 클래스
문서의 최상위 요소 선택. 태그에 해당하는 부분
- CSS 변수를 사용할 때
2. CSS 변수
변수 이름 앞에 하이픈 (—) 2개를 붙임
- 변수의 용도를 알 수 있도록 이름 붙이기
3. var( ) 함수
사용자가 미리 만든 CSS 변수를 사용할 때
- 괄호 안에 변수 이름 넣기
4. calc( ) 함수
괄호 안에는 크기 값이나 각도, 시간, 백분율 숫자 등 다양한 단위 값을 사용한 계산식이 들어감.
- ❗ 더하기나 빼기 연산자를 사용할 때는 반드시
연산자 앞 뒤에 공백
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 함수</title>
<style>
* {
margin:0;
padding:0;
box-sizing: border-box;
}
.heading {
width: calc(100% - 80px);
margin: auto;
background-color: #222;
color: #fff;
padding: 10px;
text-align: center;
font-weight: bold;
text-shadow: 2px 2px 2px #000;
}
</style>
</head>
<body>
<div class="heading">
<h1>CSS 함수</h1>
</div>
</body>
</html>
- 결과 )

5. min( ), max( ) 함수
- min( ) 함수 :
괄호 안에 나열된 값 중 가장 적은 값
- max( ) 함수 :
괄호 안에 나열된 값 중 가장 큰 값
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 함수</title>
<style>
* {
margin:0;
padding:0;
box-sizing: border-box;
}
.heading {
width: min(500px, 700px);
margin: auto;
background-color: #222;
color: #fff;
padding: 10px;
text-align: center;
font-weight: bold;
text-shadow: 2px 2px 2px #000;
}
.heading h1 {
font-size:max(2vw, 3rem);
}
</style>
</head>
<body>
<div class="heading">
<h1>CSS 함수 - min()</h1>
</div>
</body>
</html>
- 결과 )

6. clam( ) 함수
값의 범위 제한
- 최솟값과 최적값, 최댓값 3가지 매개변수 사용
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 함수</title>
<style>
* {
margin:0;
padding:0;
box-sizing: border-box;
}
.heading {
background-color: #222;
color: #fff;
padding: 10px;
text-align: center;
font-weight: bold;
text-shadow: 2px 2px 2px #000;
}
.heading h1 {
font-size: clamp(12px, 2.5vw, 25px);
}
</style>
</head>
<body>
<div class="heading">
<h1>CSS 함수</h1>
</div>
</body>
</html>
- 결과 )

6. filter 속성과 함수들
1. filter 속성
포토샵 없이 코드만으로 여러 가지 시작 효과 추가
filter : 함수
2. blur( ) 함수
선택한 이미지에 블러(흐림) 효과 적용
- 픽셀 단위로 흐림 정도 지정
filter 함수
| 속성 | 설명 |
|---|
brightness() | 선택한 이미지를 좀 더 밝게 표시. 백분율이나 숫자 사용 |
contrast() | 대비 조절. 백분율 값 사용 |
dropshadow() | 그림자 적용. box-shadow 속성과 같은 매개변수 사용 |
grayscale() | 이미지를 흑백으로 변경. 백분율 사용 |
invert() | 이미지 색상 반전 |
sepia() | 이미지를 세피아톤으로 변경 |
opacity() | 이미지의 투명도 조절. 백분율 사용 |
hue-rotate() | 이미지에 있는 색상의 hue 값 회전시키기. 각도 사용 |
saturate() | 이미지의 채도 변경. 백분율 사용 |
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>다양한 filter 함수</title>
<style>
.gallery {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 10px;
}
.gallery img {
width: 80%;
border-radius: 50%;
}
.title {
text-align: center;
font-weight: bold;
margin-bottom:20px;
}
.image-container {
border: 1px solid #ccc;
padding: 10px;
border-radius: 10px;
background: #f9f9f9;
}
.blur { filter: blur(5px); }
.brightness { filter: brightness(2); }
.contrast { filter: contrast(200%); }
.drop-shadow { filter: drop-shadow(16px 16px 10px black); }
.grayscale { filter: grayscale(100%); }
.invert { filter: invert(100%); }
.sepia { filter: sepia(100%) }
.opacity { filter: opacity(50%); }
.hue-rotate { filter: hue-rotate(90deg); }
.saturate { filter: saturate(200%); }
</style>
</head>
<body>
<div class="orgin">
<img src="images/cat.jpg" style="border-radius: 50%;">
</div>
<div class="gallery">
<div class="image-container">
<div class="title">filter:blur(5px)</div>
<img src="images/cat.jpg" class="blur">
</div>
<div class="image-container">
<div class="title">filter:brightness(2)</div>
<img src="images/cat.jpg" class="brightness">
</div>
<div class="image-container">
<div class="title">filter:contrast(200%)</div>
<img src="images/cat.jpg" class="contrast">
</div>
<div class="image-container">
<div class="title">filter:drop-shadow(16px 16px 10px black)</div>
<img src="images/cat.jpg" class="drop-shadow">
</div>
<div class="image-container">
<div class="title">filter:grayscale(100%)</div>
<img src="images/cat.jpg" class="grayscale">
</div>
<div class="image-container">
<div class="title">filter:invert(100%)</div>
<img src="images/cat.jpg" class="invert">
</div>
<div class="image-container">
<div class="title">filter:sepia(100%)</div>
<img src="images/cat.jpg" class="sepia">
</div>
<div class="image-container">
<div class="title">filter:opacity(50%)</div>
<img src="images/cat.jpg" class="opacity">
</div>
<div class="image-container">
<div class="title">filter:hue-rotate(90deg)</div>
<img src="images/cat.jpg" class="hue-rotate">
</div>
<div class="image-container">
<div class="title">filter:saturate(200%)</div>
<img src="images/cat.jpg" class="saturate">
</div>
</div>
</body>
</html>
- 결과 )
