그레이디언트

그레이디언트는 두 가지 이상의 색상을 혼합하는 채색 기능입니다. 예를 들어 [그림 6-36]의 네이버 메인 페이지 메뉴를 살펴봅시다. 위에는 밝은 초록색이고 아래는 어두운 초록색으로 색이 혼합된 형태입니다.


[그림 6-36] 네이버 메인 메뉴


CSS3 이전의 웹은 그레이디언트를 지원하지 않아 [그림 6-37]처럼 포토샵과 그래픽 툴로 이미지를 그린 후 background-image 속성을 사용해 웹 페이지에 넣었습니다.


TIP_[기본 예제 6-19]와 같으 ㄴ방식을 사용하면 웹 브라우저의 버전에 상관없이 그레이디언트를 생성할 수 있습니다.


[그림 6-37] 네이버 메인 페이지 아이콘 (스프라이트)


하지만 CSS3부터는 그레이디언트 기능을 지원합니다. 약간 내용이 어려우므로 툴을 사용해 그레디언트를 만들고 간단히 분석해 봅시다.


기본 예제 6-19 그레이디언트 생성


1. 툴을 사용해 그레이디언트 코드 생성하기


httpA://www.colorzilla.com.gradient-editor/에 접속합니다. Ultimate CSS gradient Generator 페이지의 왼쪽에서 원ㅇ하는 형태의 그레이디언트를 생성한 후 오른쪽에 생성된 CSS 코드를 복사합니다.


[그림 6-36] 그레이디언트 생성기


2. 복사한 CSS코드를 사용해 HTML 페이지 만들기 복사한 CSS 코드를 붙여 넣어 다음 코드처럼 HTML 페이지를 작성합니다. 일반 코드를 보면 다음과 같은 생각이 들 것입니다.


"갑자기 외울 게 늘어났군...."


외우지 마세요. 방금 사용한 Ultimate Gradient Generator와 같은 툴로 그레이디언트를 생성하세요. Ultimate CSS Gradient Generator를 사용하면 선형 그레이디언트 이외에 원형 그레이디언트도 쉽게 생성할 수 있습니다.


[코드6-52] 선형 그레이디언트 생성


<!DOCTYPE html>

<html>

<head>

<title>CSS3 style Property Basic</title>

<style>

div {

font-family: 'Times New Roman';

height: 60px;

line-height: 60px;

text-align: center;


/* 복사해서 붙여 넣으세요. */

/* Old browsers */

background: #f85032;

/* FF3.6+ */

background: -moz-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%);

/* Chrome,Safari4+ */

background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f85032), color-stop(50%,#f16f5c), color-stop(51%,#f6290c), color-stop(71%,#f02f17), color-stop(100%,#e73827));

/* Chrome10+ Safari5.1+ */

background: -webkit-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%);

/* Opera 11.10+ */

background: -o-linear-gradient(top, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%);

/* IE10+ */

background: -ms- linear-gradient(top, #85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%);

/* W3C */

background: linear-gradient(to bottom, #f85032 0%, #f16f5c 50%, #f6290c 51%, #f02f17 71%, #e73827 100%);

/* IE6-9 */

filter: progid:DXImageTransform.Microsoft.gradient

( startColorstr='#f85032', endColorstr='#e73827', GradientType=0 );


}

</style>

</head>

<body>

<div>

<h1>CSS3 그레이디언트</h1>

</div>

</body>

</html>


NOTE_ 벤더 프리픽스


벤더 프리픽스(Vendor Prefix)는 글자 그대로 번역하면 공급업체 접두사를 의미합니다. 벤더 프리픽슨느 웹 브라우저 공급업체(마이크로소프트, 모질라, 구글, 애플, 오페라)에서 제공하는 실험적인 기능을 사용합니다. [코드 6-52]에서 그레이디언트 앞에 붙어있는 단어들이 벤더프리픽스입니다. 웹 브라우저마다 [그림6-39]의 벤더프리픽스가 있습니다.


[그림 6-39]


인터넷 익스플로러 -ms-

크롬 -webkit-

모질라 -moz-

애플 -wiebkit-

오페라 -o-


2011년에는 border-radius, text-shadow, box-shadow 속성 모두 벤더 프리픽스를 사용했습니다. 2016년에는 사실 인터넷 익스플로러를 제외한 자동 업데이트를 지원하는 모든 웹 브라우저에서 벤더 프리픽스 없이 그레이디언트를 사용할 수 있지만, 일부 업데이트를 하지 않으 웹브라우저도 지원할 수 있게 [코드6-52]에서는 벤더 프리픽스를 입력한 것입니다.


사실 그레이디언트를 직접 입력하는 사람은 없을 것이므로 그레이디언트와 관련된 설명 대신 간단하게 선형 그레이디언트를 분석해 봅시다.


선형 그레이디언트는 [그림 6-40]의 형태로 구성됩니다. linear-gradient () 함수에는 선형 그레이디언트가 진행될 각도와 색상 블록을 차례로 입력합니다.


                                 색상 블록

linear-gradient(45deg, #f85032 0%, #e73827 100%)

                     각도      색상  위치 


[그림 6-40 linear-gradient() 함수


색상 블록의 왼쪽에는 색상 단위를 오른쪽에는 퍼센트 단위를 입력해 그레이디언트 색상과 위치를 지정합니다. 색상 블록의 퍼센트 단위가 의미하는 위치는 [그림 6-41]을 참고하면 쉽게 알 수 있을 것입니다.


원형 그레이디언트를 생성할 때는 radial-gradient() 함수를 사용합니다. 하지만 내용이 너무 복잡하고 직접 입력해서 생성할 것이 아니므로 설명은 생략합니다.


  

'프로그래밍 > CSS' 카테고리의 다른 글

반응형 웹  (0) 2017.08.03
CSS3 응용과 레이아웃  (0) 2017.08.03
그림자 속성  (0) 2017.08.03
float 속성  (0) 2017.08.03
위치 속성  (0) 2017.07.31
TAGS.

Comments