CSS 및 SVG를 사용하여 브라우저에서 마스킹
CSS 및 SVG에서의 마스킹은 CSS '마스크'속성 또는 SVG` 브라우저 지원은 다양합니다. CSS 마스크는 주로 WebKit 브라우저에서 지원되는 반면 SVG 마스크는 Firefox 및 Internet Explorer를 포함한 최신 브라우저에서 더 넓은 호환성을 가지고 있습니다.
. 마스크 이미지를 URL 값으로 설정할 수 있습니다. 이것은 PNG 이미지 파일, SVG 파일 또는 SVG 요소에 대한 참조로가는 경로 일 수 있습니다. 쉼표로 분리 된 해당 수의 URL 값을 추가하여 둘 이상의 마스크 이미지 레이어를 설정할 수 있습니다.
다음은 몇 가지 예입니다
이것은 mask1
의 ID로 svg 요소를 참조하는 방법입니다.
그라디언트 이미지는 마스크 이미지 속성에도 적합한 값입니다.
마스크 모드 속성
마스크 모드를 사용하면 마스크 레이어 이미지를 알파 마스크 또는 휘도 마스크로 설정할 수 있습니다.
알파 마스크는 알파 채널이있는 이미지입니다. 자세히 알파 채널은 각 픽셀의 데이터에 포함 된 투명성 정보입니다. Alpha로 설정된 마스크 모드 속성으로 마스킹 작업은 이미지의 알파 값을 마스크 값으로 사용합니다. /* masking with two comma-separated values */
.masked-element {
mask-image: url(mask.png), none;
}
/* using external svg graphic as mask */
.masked-element {
mask-image: url(mask.svg);
}
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사
알파 채널의 편리한 예는 검은 색과 투명 영역이있는 PNG 이미지입니다. 마스크 된 요소는 알파 값이 1 인 마스크 이미지의 검은 부분을 통해 표시됩니다. 알파 값이 0 인 투명 부분 아래의 다른 모든 것은 숨겨 질 것입니다.
이것은 마법이 일어나는 곳입니다 :
.masked-element {
mask-image: url(#mask1);
}
로그인 후 복사
그리고 여기 브라우저에서 결과가 어떻게 보이는지 :
홍합 마스크는 이미지의 휘도 값을 마스크 값으로 사용합니다. 위의 PNG 이미지와 같은 PNG 이미지 - 그러나 흰색으로는 휘도 마스크의 좋은 예입니다.
.masked-element {
mask-image: linear-gradient(black 0%, transparent 100%);
}
로그인 후 복사
마스크의 흰색 픽셀로 덮여있는 마스크를 원하는 요소의 영역이 표시됩니다. 마스크의 투명 픽셀로 덮인 마스크 된 요소의 일부는 숨겨집니다.
마스크 모드 속성을 휘도로 설정하고 위의 이미지를 마스크로 사용하면 이전과 동일한 결과가 표시됩니다.
코드는 다음과 같습니다
마스크-반복 속성
Mask-Repeat는 배경 반복 속성과 거의 비슷합니다. 크기와 위치를 설정 한 후 마스크 레이어 이미지 타일링을 제어합니다.
<:> 가능한 값은 다음과 같습니다
반복 : 마스크 레이어 이미지는 사용 가능한 공간에서 반복되지 않습니다.
<: :> 반복 -X : 마스크 레이어 이미지는 x 좌표를 따라 반복됩니다.
반복 Y : 마스크 레이어 이미지가 y 좌표 아래로 반복됩니다. -
공간 : 마스크 층 이미지가 반복되어 사용 가능한 영역 전체에서 간격을두고 있습니다.
라운드 : 마스크 레이어 이미지는 사용 가능한 영역에서 전체 횟수를 반복합니다. 정수가 사용 가능한 공간에 맞지 않으면 이미지가 그렇게 될 때까지 스케일링됩니다. -
예를 들어, 이것은 마스크로 사용하려는 이미지입니다.
-
아래 코드 스 니펫은 마스크 반복 속성을 공간 값으로 설정합니다.
다음 마스킹 효과가 발생합니다
-
마스크 위치 속성
마스크 위치 특성을 사용하여 마스크 레이어 이미지를 배치 할 수 있습니다. 이 속성을보다 친숙한 CSS 배경 이미지 속성에 사용하는 것과 동일한 값으로 설정할 수 있습니다. 초기 값은 중심입니다.
예를 들어 뷰포트의 왼쪽 상단에 마스크 이미지 레이어를 놓으려면 마스크 위치 속성을 - 0 0
:
의 값으로 설정하십시오.
이것은 위의 코드가 브라우저에서 보이는 것입니다.
위의 마스크 위치 특성의 값을
100% 100% 로 변경하면 뷰포트 오른쪽 하단에 마스크 레이어 이미지가 표시됩니다.
마스크 크기의 속성
마스크 크기 속성을 사용하여 마스크 레이어 이미지의 크기를 빠르게 설정할 수 있습니다. 마스크 크기 속성을 사용하여 더 친숙한 CSS 배경 크기 속성과 동일한 값을 수용합니다.
예를 들어, 마스크 크기를 50%로 설정하면 마스크 층 이미지가 전체 너비의 50%로 표시됩니다.
/* masking with two comma-separated values */
.masked-element {
mask-image: url(mask.png), none;
}
/* using external svg graphic as mask */
.masked-element {
mask-image: url(mask.svg);
}
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사
가 포함하도록 마스크 크기를 설정하면 마스크 레이어 이미지를 가장 큰 크기로 스케일링하여 너비와 높이가 마스크 포지셔닝 영역 내부에 들어갈 수 있습니다.
이 데모가 아래의 코드펜에서 실시간으로 살아남는 것을 볼 수 있습니다 :
Codepen에서 Sitepoint (@SitePoint)의 펜 CSS 마스크 예제 참조.
마스크 레이어를 구성
위에서 설명한대로 마스크 이미지 특성의 각 값을 쉼표로 분리하여 동일한 요소에 두 개 이상의 마스크 레이어를 사용할 수 있습니다. 레이어는 다른 층이 화면에 먼저 표시되면서 다른 레이어 위에 쌓입니다.
예를 들어 /* masking with two comma-separated values */
.masked-element {
mask-image: url(mask.png), none;
}
/* using external svg graphic as mask */
.masked-element {
mask-image: url(mask.svg);
}
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사
위의 스 니펫에서
mask22.png 는 mask1.png 가 겹쳐집니다.
마스크 복합 속성을 사용하면 다음 키워드의 값에 따라 다른 마스크 레이어를 결합 할 수 있습니다.
추가 : mask2.png 는 mask1.png 위에 페인트됩니다
suptract : mask1.png 를 겹치지 않는 mask2.png 의 일부를 표시합니다. 브라우저는 아직 표준 키워드를 지원하지 않으므로 적어도 당분간 해당 합성 운영자 키워드 소스 아웃을 사용해야합니다.
<: :> 교차 : mask1.png 의 겹침 부분을 표시합니다. 그러나 CSS 마스크를 지원하는 유일한 브라우저 인 WebKit 브라우저는 비표준 복합 소스 인 키워드를 사용하는 경우에도 화면에 아무것도 표시되지 않는 것 같습니다.
제외 : mask1.png 및 mask2.png 의 일부를 겹치지 않는 부분을 표시합니다. 다시 한번, 표준 키워드에는 아직 지원이 없기 때문에 복합 연산자 XOR을 사용하는 것이 훨씬 좋습니다.
-
아래 코드 펜 데모에서 라이브 데모를 확인할 수 있습니다.
Codepen에서 sitepoint (@sitepoint)별로 펜 CSS 마스크를 참조하십시오.
마스크 속성 속성
당신은 마스크를 사용하여 한 번에 CSS 마스킹 작업을 제어하는 모든 속성을 설정할 수 있습니다.
다음은 풀 마스크 속기입니다
마스크-오리진 및 마스크 클립 작업보다 친숙한 배경 오리핀 및 배경 클립 특성과 같은 작업.
마스크 속의 속성에서 속성을 재정렬 할 수 있지만 마스크 포지션 속성 후에는 "/"기호로 분리 된 마스크 크기 속성을 설정해야합니다. 또한 마스크 속도를 설정하지 않고 마스크 크기를 설정하면 잘못된 선언이 발생합니다.
마지막으로, 마스크 속성에 지정하지 못하는 값은 초기 기본값으로 다시 설정되므로 마스크를 사용하여 개별 속성을 재설정해야 할 때 마스크를 사용하여 실제로 편리합니다.
SVG 마스크 요소
확장 가능한 벡터 그래픽 또는 SVG는 그래픽을 표시하는 XML 기반 언어입니다.
SVG 문서 내부의 요소를 사용하여 HTML 요소 및 기타 SVG 그래픽에 마스킹 효과를 추가 할 수 있습니다.
SVG로 할 수있는 멋진 일은 텍스트를 사용하여 페이지의 다른 요소를 마스킹하는 것입니다.
이러한 각 가능성을 자세히 살펴 보겠습니다
HTML 요소에서 svg 요소를 사용하여
작성 시점에서 인라인 SVG 그래픽 내부의 요소를 사용하여 HTML 요소를 마스킹하면 Firefox 브라우저에서만 작동합니다. 예는 다음과 같습니다.
다음 CSS와 함께 /* masking with two comma-separated values */
.masked-element {
mask-image: url(mask.png), none;
}
/* using external svg graphic as mask */
.masked-element {
mask-image: url(mask.svg);
}
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사
위의 코드에 는 mask1 의 id가있는 요소를 포함 시켰습니다. 마스크 내부에는 grad 의 ID와 그라디언트를 채우기 색상으로 사용하는 원 모양으로 흑백 그라디언트를 배치했습니다.
마지막으로 CSS 마스크 속성에서 SVG 요소의 ID 값을 참조했습니다. 이것은 마스킹 효과를 페이지의 이미지에 적용합니다.
페이지 배경과 마스크 이미지에 대한 몇 가지 다른 스타일 선언을 추가하면 아래의 것과 같이 매우 극적인 효과를 얻을 수 있습니다.
그라디언트의 흰색 음영으로 채워진 원 마스크의 부분이 마스크 된 이미지를 보여줄 수있는 방법에 주목하십시오. 반대로, 그라디언트의 검은 색 색조로 채워진 부분은 마스크 된 이미지를 숨 깁니다.
Codepen 에서이 라이브 데모가 있습니다 (Firefox에서만 작동합니다!) . .
Codepen에서 sitepoint (@sitepoint)에 의해 인라인 svg 마스크 요소가있는 펜 마스킹을 참조하십시오.
SVG 그래픽에서 svg 요소를 사용하는
이전 예제에서 동일한 SVG 요소를 사용할 수 있지만 이번에는 HTML 요소가 아닌 SVG 그래픽을 마스킹합니다. 장점은 WebKit 브라우저와 최신 IE를 포함하여 브라우저 지원이 훨씬 향상된다는 것입니다.
아래 스 니펫에서는 SVG 요소 안에 마스크를 마스킹하고 CSS 마스크 속성을 적용하려는 이미지를 배치하겠습니다. CSS 마스크 속성은 이전 예제와 마찬가지로
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
.masked-element { mask-image: url(#mask1); }
.masked-element { mask-image: linear-gradient(black 0%, transparent 100%); }
마스크 모드 속성을 휘도로 설정하고 위의 이미지를 마스크로 사용하면 이전과 동일한 결과가 표시됩니다.
코드는 다음과 같습니다
Mask-Repeat는 배경 반복 속성과 거의 비슷합니다. 크기와 위치를 설정 한 후 마스크 레이어 이미지 타일링을 제어합니다.
<:> 가능한 값은 다음과 같습니다
-
공간 : 마스크 층 이미지가 반복되어 사용 가능한 영역 전체에서 간격을두고 있습니다. - 예를 들어, 이것은 마스크로 사용하려는 이미지입니다.
-
아래 코드 스 니펫은 마스크 반복 속성을 공간 값으로 설정합니다. -
마스크 위치 속성 마스크 위치 특성을 사용하여 마스크 레이어 이미지를 배치 할 수 있습니다. 이 속성을보다 친숙한 CSS 배경 이미지 속성에 사용하는 것과 동일한 값으로 설정할 수 있습니다. 초기 값은 중심입니다.
예를 들어 - 0 0 :
반복 : 마스크 레이어 이미지는 사용 가능한 공간에서 반복되지 않습니다.
<: :> 반복 -X : 마스크 레이어 이미지는 x 좌표를 따라 반복됩니다.

로 변경하면 뷰포트 오른쪽 하단에 마스크 레이어 이미지가 표시됩니다.
마스크 크기의 속성/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }

예를 들어 /* masking with two comma-separated values */
.masked-element {
mask-image: url(mask.png), none;
}
/* using external svg graphic as mask */
.masked-element {
mask-image: url(mask.svg);
}
로그인 후 복사로그인 후 복사로그인 후 복사로그인 후 복사
위의 스 니펫에서
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
mask22.png 는 mask1.png 가 겹쳐집니다.
mask2.png 의 일부를 표시합니다. 브라우저는 아직 표준 키워드를 지원하지 않으므로 적어도 당분간 해당 합성 운영자 키워드 소스 아웃을 사용해야합니다.
<: :> 교차 : mask1.png 의 겹침 부분을 표시합니다. 그러나 CSS 마스크를 지원하는 유일한 브라우저 인 WebKit 브라우저는 비표준 복합 소스 인 키워드를 사용하는 경우에도 화면에 아무것도 표시되지 않는 것 같습니다.
/* masking with two comma-separated values */
.masked-element {
mask-image: url(mask.png), none;
}
/* using external svg graphic as mask */
.masked-element {
mask-image: url(mask.svg);
}
SVG 그래픽에서 svg
위 내용은 CSS 및 SVG를 사용하여 브라우저에서 마스킹의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Google Fonts가 새로운 디자인 (트윗)을 출시 한 것을 볼 수 있습니다. 마지막 큰 재 설계와 비교할 때 이것은 훨씬 더 반복적 인 느낌이 듭니다. 차이를 간신히 말할 수 있습니다

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.

새로운 프로젝트가 시작될 때, Sass 컴파일은 눈을 깜박이게합니다. 특히 BrowserSync와 짝을 이루는 경우 기분이 좋습니다.

타탄은 일반적으로 스코틀랜드, 특히 세련된 킬트와 관련된 패턴의 천입니다. tartanify.com에서 우리는 5,000 개가 넘는 타탄을 모았습니다

Inline-Template 지시문을 사용하면 기존 WordPress 마크 업에 대한 진보적 인 향상으로 풍부한 VUE 구성 요소를 구축 할 수 있습니다.

Lea Verou의 기능 목록을 주시 한 한 가지는 Conic-Gradient () Polyfill이 마지막 항목이었습니다.
