홈페이지 » 코딩 » CSS 마스크를 사용하여 스위치 UI를 만드는 방법

    CSS 마스크를 사용하여 스위치 UI를 만드는 방법

    이미지 처리, 마스킹 다음과 같은 작업을 수행 할 수있는 기술입니다. 이미지 숨기기 다른 것과. 마스크는 이미지의 일부를 만드는 데 사용됩니다. 투명하게 보는. 속성을 마스킹하여 CSS를 사용하여 마스킹을 수행 할 수 있습니다..

    오늘의 포스트에서는 두 개의 PNG 이미지와 CSS 마스킹 기술을 사용하여 마스크 된 이미지를 만들고 사용자가 이미지의 두 상태 () 스위치 UI의 도움으로.

    일부 브라우저 호환성 문제로 인해 모든 브라우저에서 모든 마스킹 속성이 지원되는 것은 아닙니다 (2016 년 6 월 기준). 마스크 추가를위한 두 가지 기술, 하나는 Webkit 기반 브라우저 용이고 다른 하나는 Firefox 용입니다. 이 3 단계 자습서의 두 가지 첫 번째 단계는 모든 브라우저에서 동일하지만 세 번째 단계에서 차이가 있습니다.

    1 단계. 기본 스위치 만들기

    일반적인 스위치에는 다음과 같은 두 가지 상태가 있습니다. 오직 하나 사용 가능 한 번에 두 개의 라디오 버튼 그룹 스위치의 작동 구성 요소를 만듭니다. 각 라디오 버튼을 부모 요소의 왼쪽과 오른쪽 끝에 놓습니다..

    라디오 버튼 그룹은 각 라디오 버튼에 동일한 것을 지정하여 생성됩니다. 이름 속성. 라디오 버튼 그룹, 하나의 라디오 버튼 만 한 번에 확인할 수있다..

    다음 HTML과 CSS로 시작합니다.

    HTML

    CSS

    아래의 CSS에서는 절대 위치 지정을 사용하여 원하는 위치에 정확히 라디오 버튼을 배치했습니다..

    #outerWrapper width : 450px; 높이 : 90px; 패딩 : 10px; margin : 100px auto 0 auto; border-radius : 55px; 상자 그림자 : 0 0 10px 6px #EAEBED; 배경 : #fff;  #innerWrapper 높이 : 100 %; border-radius : 45px; 오버플로 : 숨김; 위치 : 상대적;  .radio width : 90px; 높이 : 100 %; 위치 : 절대; margin : 0; 불투명도 : 0;  #rightRadio right : 0;  .radio : not (: checked) cursor : pointer;  

    나는 불투명도 : 0 규칙을 .라디오 클래스에 라디오 버튼 숨기기. 아래 코드 블록의 마지막 규칙, 커서 : 포인터; 선택되지 않은 라디오 버튼에 대한 포인터 커서를 보여 주므로 사용자는 클릭하여 스위치 상태를 전환 할 수 있습니다.

    Chrome 브라우저의 라디오 버튼이있는 스위치 UI의 스크린 샷

    2 단계. 스위치에 스킨 추가

    이 단계에서는 두 가지를 추가합니다.

    HTML 파일의 라디오 버튼 아래에있는 두 개의 스킨에 대한 태그와 CSS의 각 스킨에 대한 배경 이미지.

    저는 Minh Killy Le가 쓴 Dribbble에서 영감을 얻은 "Day"와 "Night"를 전환의 두 주로서 사용하고 있습니다..

    데이 스킨
    나이트 스킨

    HTML

    CSS

    #daySkin background-image : url ( 'day.png');  #nightSkin background-image : url ( 'night.png');  .skin width : 100 %; 높이 : 100 %; 포인터 이벤트 : 없음; 위치 : 절대; margin : 0; 

    그만큼 포인터 이벤트 : 없음; 규칙이 스킨에 추가되어 스위치의 클릭 이벤트가 그들을 지나치다, 과 라디오 버튼에 도달.

    pointer-events CSS 속성을 사용하면 그래픽 요소가 될 수있는 환경을 설정할 수 있습니다 마우스 이벤트 대상.

    위의 코드에 대한 대안으로 두 태그 내부 (소스 이미지 포함)

    태그도 사용할 수 있습니다. 그들은 두 스위치 상태에 대한 스킨.

    크롬에 스킨이있는 스위치의 스크린 샷

    3a 단계. 마스크 추가 (Webkit 버전)

    Chrome 및 기타 Webkit 기반 브라우저의 경우 마스크 - 이미지 이 글을 쓰는 현재 CSS 속성은 -웹킷 웹킷 브라우저에서 접두사. 그만큼 마스크 - 이미지 속성을 사용하면 이미지 지정 사용될 ~로서 마스크.

    일반적으로 마스킹에는 두 가지 종류가 있습니다. 광도알파.

    • 에서 휘도 마스킹, 마스크 이미지의 어두운 부분은 마스크하는 이미지를 숨 깁니다. 어두운 부분은 마스크 이미지에 있습니다., 더 숨겨진 부분은 마스크 된 이미지에서.
    • 에서 알파 마스킹, 마스크 이미지의 투명한 부분은 마스크하는 이미지를 숨 깁니다. 마스크 이미지에있는 투명한 부분이 많을수록 숨겨진 부분이 마스크 된 이미지에 더 많이 숨겨집니다..

    Chrome에서 (버전 51.0.2704.103, Win10) 현재 알파 만 작동하는 것 같습니다..

    CSS에서, 알파광도 의 값은 마스크 형 재산.

    여기 CSS가 있습니다. 마스크를 추가하다. Webkit 브라우저에서 배경 이미지로 이동 :

    CSS

    #nightSkin background-image : url ( 'night.png'); 마스크 유형 : 알파; / * 나머지 부분이 불투명 한 투명한 원 * / -webkit-mask-image : 방사형 그라데이션 (45px 45px, rgba (0,0,0,0) 45px, rgba (0,0,0,1) 45px에서 원) ;  / * day skin을 선택했을 때 * / #leftRadio : checked ~ # nightSkin mask-type : alpha; * / -webkit-mask-image : 방사형 그라디언트 (405px 45px, rgba (0,0,0,1) 45px, rgba (0,0,0,0) 45px에서 원) ; 

    나는 -웹킷 마스크 이미지 속성을 사용하여 초기 마스크 이미지를 만듭니다. 그 가치는 방사형 그라디언트 () 사전 정의 된 모양, 방사형 그래디언트 및 그래디언트 중심에서 이미지를 만드는 데 사용되는 CSS 기능.

    밤의 피부는 투명한 원을 만들었고 컨테이너의 나머지 부분은 불투명하게 만들었습니다. 날 피부를 위해, 나는 반대를했다 : 불투명 한 원을 방사형 그라디언트 () 기능을 사용하고 나머지 부분은 투명하게 만들었습니다..

    아직 Webkit 브라우저에서는 지원되지 않지만 마스크 형 나중에 참조 할 수 있도록 CSS에 대한 속성.

    나이트 스킨이 선택된 스위치의 스크린 샷
    Day Skin이 선택된 스위치의 스크린 샷

    위에서 볼 수 있듯이 원의 경계선은 부드럽 지 않습니다. 에 거친 가장자리를 숨기다., ~을 추가하다

    상자 그림자가있는 원 모양 (마스크 원과 동일한 크기)의 스킨을 만든 후 그림자는 원형 마스크의 거친 가장자리를 숨 깁니다..

    HTML

    CSS

    #switchBtnOutline width : 90px; 높이 : 100 %; border-radius : 45px; 상자 그림자 : 0 0 2px 2px 회색 삽입, 0 0 10px 회색; 포인터 이벤트 : 없음; 위치 : 절대; margin : 0;  / * day 스킨이 선택되면 오른쪽 끝에 #switchBtnOutline을 배치하십시오. * / #leftRadio : checked ~ # switchBtnOutline right : 0; 
    마스크 원의 거친 가장자리가 숨겨진 스위치 스크린 샷

    3b 단계. 마스크 추가 (Firefox 버전)

    그만큼 마스크 - 이미지 CSS 속성은 실제로 수중 속성, 그리고 그것은 속기 속성의 일부입니다. 마스크 마스크로 사용할 이미지도 지정할 수 있습니다. 동안 마스크 - 이미지 아직 Firefox에서는 지원되지 않습니다., 마스크 ~이다..

    비록 마스크 속성을 사용하여 만든 이미지를 허용해야합니다. 방사형 그라디언트 () CSS 기능은 값처럼 마스크 - 이미지 property는 Firefox에서 아직 지원하지 않습니다..

    그래서, 대신에 방사형 그라디언트 () 이미지, SVG 이미지를 마스크 유형의 마스크 이미지로 사용 해보자. 광도.

         

    위의 SVG 이미지는 흰색 직사각형검은 동그라미. 이것을 추가하고 다른 하나는 검은 색 직사각형흰 동그라미 Webkit 버전에서 사용한 HTML의 마스크로 사용.

    SVG 이미지 (마스크의 흰색 직사각형과 검은 색 원)

    HTML

                 

    에 대한 CSS 코드를 바꾸거나 결합하십시오. #nightSkin 우리는 다음 코드로 Webkit 버전에서 사용했습니다. 그리고 너 끝났어..

    이제는 두 가지 마스크 이미지 (CSS 그라디언트 및 SVG), 두 가지 다른 마스크 유형 (알파 및 광도), Webkit 및 Firefox 지원.

    CSS

    #nightSkin background-image : url ( 'night.png'); 마스크 유형 : 광도; 마스크 : url (#leftSwitchMask);  #leftRadio : checked ~ # nightSkin 마스크 유형 : 광도; 마스크 : url (#rightSwitchMask); 

    데모 확인

    • 데모
    • 소스 다운로드
    © Savtec
    유용한 정보 및 웹 개발 팁. 프로그래밍, 웹 디자인, CSS, HTML, JAVASCRIPT. WINDOWS를 구성하고 다시 설치하십시오. 처음부터 사이트 및 응용 프로그램 만들기