의 ID와 참조합니다. 마스킹 된 SVG 그래픽의 코드는 다음과 같습니다
그리고 이것은 CSS에서 마스킹 작업을 처리하는 스 니펫입니다.
결과는 이전 예제와 거의 비슷합니다. 이번에는 모든 주요 브라우저에서 볼 수 있습니다.
Codepen 데모를 살펴보십시오
Codepen의 sitepoint (@sitepoint)에 의해 svg 요소의 펜 SVG 마스크를 참조하십시오.
SVG 텍스트로 마스킹
SVG 마스크 내부의 텍스트 요소를 사용하여 마스킹 작업을 수행 할 수 있습니다.
위의 스 니펫은 SVG 마스크 내부에 검은 색 SVG 텍스트 요소를 추가하고 CSS 마스크 속성을 사용하여 연한 파란색 SVG 타원 모양에 적용합니다. 타원 모양 뒤에있는 것이 무엇이든간에 (이 경우 신체의 배경 이미지)는 텍스트를 통해 표시됩니다. 결과는 다음과 같이 보입니다 :
전체 코드는 CodePen : 에서 사용할 수 있습니다 Codepen에서 sitepoint (@sitepoint)의 펜 SVG 텍스트 마스크를 참조하십시오.
애니메이션 마스크
CSS 전환 및 키 프레임 애니메이션을 사용하여 마스크 위치 및 마스크 크기를 애니메이션 할 수 있습니다.
아래는 별 모양의 PNG 마스크 이미지의 기본 키 프레임 애니메이션 예제입니다.
여기에는 관련 코드 스 니펫이 있습니다
마스크 된 요소는 html
태그 : 입니다
마스킹 작업은 속성 마스크 속성을 사용합니다
요소의 애니메이션 클래스는 CSS 변환 및 애니메이션을 사용하여 별 모양의 이미지에 움직임을 추가합니다.
Chrome과 같은 WebKit 브라우저를 시작하고 Codepen에서 다음 라이브 데모를 확인하십시오 :
Codepen에서 Maria Antonietta Perna (@antonietta)의 CSS 마스크로 애니메이션을 참조하십시오.
CSS로 SVG 마스크 요소를 애니메이션하는 것
SVG 요소를 사용하여
태그에 마스킹 효과를 추가 한 다음 CSS로 애니메이션 할 수 있습니다.
여기에 빠른 코드펜 데모가 있습니다 : 애니메이션은 모든 브라우저에서 볼 수 있지만 마스킹은 Firefox에서만 렌더링됩니다 : .
Codepen에서 sitepoint (@SitePoint)에 의해 HTML 요소의 펜 애니메이션 SVG 마스크를 참조하십시오.
좋은 소식은 인라인 SVG 그래픽에 SVG 마스크를 적용하면 브라우저가 즉시 스카이 로켓을 지원한다는 것입니다. svg : 만 사용하여 동일한 애니메이션 데모를 확인하십시오
Codepen에서 sitepoint (@sitepoint)에 의해 svg 요소의 펜 애니메이션 SVG 마스크를 참조하십시오.
마스크 속성에 대한 브라우저 지원
나는이 기사에서 브라우저 지원 문제를 다루었 다. 글을 쓰는 시점의 상황에 대한 간단한 고장은 다음과 같습니다.
PNG 또는 외부 SVG 이미지 마스크.
HTML 요소의 인라인 SVG 마스크 요소는 Firefox에서만 지원됩니다.
SVG 요소의 인라인 SVG 마스크 요소는 WebKit 브라우저와 Firefox 및 최신 Internet Explorer에서 지원됩니다.
요크 셀 의이 위대한 코드 펜 데모는 브라우저 지원이 진행되는 한 최신 기술을 시각적으로 보여줍니다.
Alan Greenblatt는 Github 저장소를 제공하여 어떤 CSS 그래픽 관련 속성이 어떤 브라우저에 의해 지원되는지에 대한 세부 사항에 들어갑니다. 캔의 브라우저 지원 호환성 테이블은 웹 사이트에서 더 많은 세부 정보와 더 많은 리소스 링크를 제공합니다.
CSS 마스크에 대한 현재 브라우저 지원이 좋지는 않지만이 기능을 몇 가지 장식 요소에 대한 향상으로 사용하면 지원하지 않는 브라우저 사용자가 누락 된 것을 알지 못합니다.
마지막으로 SVG 요소를 사용하여 SVG 그래픽에 마스킹 효과를 적용하면 최신 브라우저에서 가장 넓은 지원을 받고 웹에서 멋지게 보입니다.
자원
CSS 마스킹 모듈 레벨 1 - W3C 편집기 초안
CSS- 트릭에서 CSS의 클리핑 및 마스킹
Codrops CSS Mask-Image 가있는 마스킹에 대한 참조
svg 에서 mdn
Jakob Jenkov의 svg 마스크
Dirk Schulze에 의한 CSS 마스킹
공유하고 싶은 웹에서 멋진 마스킹 효과를 알고 있습니까? 댓글 상자를 누르고 알려주세요.
CSS 및 SVG 마스킹에 대한 질문 (FAQS)은 자주 묻는 질문 (FAQ) 입니다
CSS와 SVG 마스킹의 차이점은 무엇입니까? CSS와 SVG 마스킹은 모두 요소의 일부를 숨기거나 드러낼 수 있도록합니다. 그러나 그들은 그들의 접근과 능력이 다릅니다. CSS 마스킹은 이미지를 마스크 층으로 사용하여 마스크 이미지의 알파 채널이 요소의 가시성을 결정합니다. 반면, SVG 마스킹은 벡터 그래픽을 마스크 층으로 사용하여 마스크의 모양과 크기에 대한 유연성과 제어를 제공합니다. SVG 마스킹은 또한 CSS 마스킹으로 불가능한 색상 및 그라디언트 마스크를 지원합니다. SVG로 구배 마스크를 만들 수 있습니까? SVG 마스킹은 그라디언트 마스크를 만들 수 있습니다. 웹 요소에 독특한 시각적 효과를 추가하십시오. SVG로 그라디언트 마스크를 만들려면 마스크 요소 내부에서 선형 그라데이션 또는 방사형 그레이드 요소를 정의해야합니다. 그라디언트 요소에는 그라디언트를 따라 다른 지점에서 색상과 불투명도를 정의하는 두 개의 정지 요소가 있어야합니다. CSS와 SVG 마스킹을 함께 사용할 수 있습니까? 예, CSS를 사용할 수 있습니다. SVG 마스킹을 함께하여 복잡한 마스킹 효과를 만듭니다. CSS 마스크를 요소에 적용한 다음 SVG 마스크를 동일한 요소에 적용 할 수 있습니다. 요소의 최종 가시성은 두 마스크의 조합에 의해 결정됩니다. 왜 내 CSS 마스크가 인터넷 익스플로러에서 작동하지 않습니까?
CSS 마스킹은 인터넷 익스플로러에서 지원되지 않습니다. Internet Explorer를 지원 해야하는 경우 대신 SVG 마스킹을 사용해야합니다. SVG 마스킹은 Internet Explorer를 포함한 모든 주요 브라우저에서 지원됩니다. CSS 또는 SVG로 마스크를 애니메이션 할 수 있습니까? CSS 및 SVG 마스킹 지원 애니메이션 모두 CSS 마스킹의 경우 CSS 애니메이션 또는 전환을 사용하여 마스크 이미지 속성을 애니메이션 할 수 있습니다. SVG 마스킹의 경우 SVG 애니메이션을 사용하여 마스크 요소를 애니메이션 할 수 있습니다. CSS 또는 SVG가있는 마스크로 텍스트를 사용할 수 있습니까? 예, CSS와 SVG가있는 마스크로 텍스트를 사용할 수 있습니다. CSS 마스킹의 경우 텍스트 이미지를 마스크 이미지로 사용할 수 있습니다. SVG 마스킹의 경우 텍스트 요소를 마스크 요소로 사용할 수 있습니다.
CSS 또는 SVG를 사용하여 원형 마스크를 만들 수 있습니까? CSS로 원형 마스크를 만들려면 어떻게 사용할 수 있습니다. 마스크 이미지로서 방사형 등급 기능. SVG로 원형 마스크를 만들려면 원소 요소를 마스크 요소로 사용할 수 있습니다.
여러 모양으로 복잡한 마스크를 만들 수 있습니까?
여러 모양으로 복잡한 마스크를 만들려면 어떻게해야합니까? , SVG 마스킹을 사용할 수 있습니다. SVG 마스킹을 사용하면 마스크 요소로 여러 모양 요소 (RECT, Circle, Polygon 등)를 사용할 수 있습니다. 복잡한 마스크를 만들기 위해 이러한 모양을 독립적으로 위치와 크기로 만들 수 있습니다. 비디오를 CSS 또는 SVG가있는 마스크로 사용할 수 있습니까? CSS 마스킹은 비디오 마스크를 지원합니다. 마스크 이미지 속성을 비디오 URL로 설정하여 비디오를 마스크 이미지로 사용할 수 있습니다. SVG 마스킹은 비디오 마스크를 지원하지 않습니다.
CSS 또는 SVG로 마스크의 불투명도를 조정하려면 CSS 마스킹의 경우 마스크의 불투명도는 알파 채널에 의해 결정됩니다. 마스크 이미지. 마스크 이미지를 편집하여 불투명도를 조정할 수 있습니다. SVG 마스킹의 경우, 마스크의 불투명도는 마스크 요소의 충전 기능 및 스트로크-능력 특성에 의해 결정됩니다. 이러한 특성을 변경하여 불투명도를 조정할 수 있습니다