>  기사  >  웹 프론트엔드  >  CSS를 사용하여 iOS7을 모방한 스위치 버튼 구현

CSS를 사용하여 iOS7을 모방한 스위치 버튼 구현

不言
不言원래의
2018-06-12 17:01:351562검색

이 글에서는 js 코드를 포함할 필요 없이 순수 CSS로 구현된 iOS7과 유사한 스위치 버튼을 주로 소개합니다. 구현시 두 가지 색상과 세 가지 크기의 데모가 제공됩니다. 필요하신 친구들은 참고하시면 됩니다

오늘은 iOS7을 본뜬 스위치 버튼을 소개해드리겠습니다. 이 버튼은 순수 CSS로도 구현됩니다. js 코드를 포함할 필요가 없습니다. 구현 과정에서 두 가지 색상과 세 가지 크기의 데모가 제공됩니다. 렌더링을 살펴보겠습니다.

  구현된 코드.

  html 코드:

<p class="wrap" style="width: 600px; margin: auto;">
        <h1>
            iOS 7 style switches with CSS</h1>
        <h2>
            By Bandar Raffah</h2>
        <label>
            Big<input type="checkbox" class="ios-switch green  bigswitch" checked /><p>
                <p>
                </p>
            </p>
        </label>
        <label>
            <input type="checkbox" class="ios-switch bigswitch" checked /><p>
                <p>
                </p>
            </p>
        </label>
        <label>
            Normal<input type="checkbox" class="ios-switch green" /><p>
                <p>
                </p>
            </p>
        </label>
        <label>
            <input type="checkbox" class="ios-switch" /><p>
                <p>
                </p>
            </p>
        </label>
        <label>
            Tiny<input type="checkbox" class="ios-switch green tinyswitch" checked /><p>
                <p>
                </p>
            </p>
        </label>
        <label>
            <input type="checkbox" class="ios-switch tinyswitch" checked /><p>
                <p>
                </p>
            </p>
        </label>
  </p>

  css 코드:

input[type="checkbox"]
        {
            position: absolute;
            opacity: 0;
        }
        /* Normal Track */
        input[type="checkbox"].ios-switch + p
        {
            vertical-align: middle;
            width: 40px;
            height: 20px;
            border: 1px solid rgba(0,0,0,.4);
            border-radius: 999px;
            background-color: rgba(0, 0, 0, 0.1);
            -webkit-transition-duration: .4s;
            -webkit-transition-property: background-color, box-shadow;
            box-shadow: inset 0 0 0 0px rgba(0,0,0,0.4);
            margin: 15px 1.2em 15px 2.5em;
        }
        /* Checked Track (Blue) */
        input[type="checkbox"].ios-switch:checked + p
        {
            width: 40px;
            background-position: 0 0;
            background-color: #3b89ec;
            border: 1px solid #0e62cd;
            box-shadow: inset 0 0 0 10px rgba(59,137,259,1);
        }
        /* Tiny Track */
        input[type="checkbox"].tinyswitch.ios-switch + p
        {
            width: 34px;
            height: 18px;
        }
        /* Big Track */
        input[type="checkbox"].bigswitch.ios-switch + p
        {
            width: 50px;
            height: 25px;
        }
        /* Green Track */
        input[type="checkbox"].green.ios-switch:checked + p
        {
            background-color: #00e359;
            border: 1px solid rgba(0, 162, 63,1);
            box-shadow: inset 0 0 0 10px rgba(0,227,89,1);
        }
        /* Normal Knob */
        input[type="checkbox"].ios-switch + p > p
        {
            float: left;
            width: 18px;
            height: 18px;
            border-radius: inherit;
            background: #ffffff;
            -webkit-transition-timing-function: cubic-bezier(.54,1.85,.5,1);
            -webkit-transition-duration: 0.4s;
            -webkit-transition-property: transform, background-color, box-shadow;
            -moz-transition-timing-function: cubic-bezier(.54,1.85,.5,1);
            -moz-transition-duration: 0.4s;
            -moz-transition-property: transform, background-color;
            box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3), 0px 0px 0 1px rgba(0, 0, 0, 0.4);
            pointer-events: none;
            margin-top: 1px;
            margin-left: 1px;
        }
        /* Checked Knob (Blue Style) */
        input[type="checkbox"].ios-switch:checked + p > p
        {
            -webkit-transform: translate3d(20px, 0, 0);
            -moz-transform: translate3d(20px, 0, 0);
            background-color: #ffffff;
            box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3), 0px 0px 0 1px rgba(8, 80, 172,1);
        }
        /* Tiny Knob */
        input[type="checkbox"].tinyswitch.ios-switch + p > p
        {
            width: 16px;
            height: 16px;
            margin-top: 1px;
        }
        /* Checked Tiny Knob (Blue Style) */
        input[type="checkbox"].tinyswitch.ios-switch:checked + p > p
        {
            -webkit-transform: translate3d(16px, 0, 0);
            -moz-transform: translate3d(16px, 0, 0);
            box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3), 0px 0px 0 1px rgba(8, 80, 172,1);
        }
        /* Big Knob */
        input[type="checkbox"].bigswitch.ios-switch + p > p
        {
            width: 23px;
            height: 23px;
            margin-top: 1px;
        }
        /* Checked Big Knob (Blue Style) */
        input[type="checkbox"].bigswitch.ios-switch:checked + p > p
        {
            -webkit-transform: translate3d(25px, 0, 0);
            -moz-transform: translate3d(16px, 0, 0);
            box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.3), 0px 0px 0 1px rgba(8, 80, 172,1);
        }
        /* Green Knob */
        input[type="checkbox"].green.ios-switch:checked + p > p
        {
            box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 162, 63,1);
        }
        /* Needless Page Decoration */
        body
        {
            -webkit-user-select: none;
            cursor: default;
            font: 18px "Helvetica Neue";
            color: rgba(0, 0, 0, 0.77);
            font-weight: 200;
            padding-left: 30px;
            padding-top: 0px;
            background: -webkit-linear-gradient(top, #f2fbff 0%, #ffffff 64%) no-repeat;
            background: -moz-linear-gradient(top, #f2fbff 0%, #ffffff 64%) no-repeat;
            background: -ms-linear-gradient(top, #f2fbff 0%, #ffffff 64%) no-repeat;
            background: linear-gradient(to bottom, #f2fbff 0%, #ffffff 64%) no-repeat;
        }
        h1
        {
            font-weight: 100;
            font-size: 40px;
            color: #135ae4;
        }
        h2
        {
            font-weight: 200;
            font-size: 22px;
            color: #03b000;
        }
        h3
        {
            font-weight: 200;
            font-size: 18px;
            color: rgba(0, 0, 0, 0.77);
            margin-top: 50px;
        }
        a:link
        {
            text-decoration: none;
            color: #f06;
        }
        a:visited
        {
            text-decoration: none;
            color: #f06;
        }
        a:hover
        {
            text-decoration: underline;
        }
        a:active
        {
            text-decoration: underline;
        }  

위 내용은 모두의 학습에 도움이 되기를 바랍니다. 웹사이트!

관련 권장 사항:

CSS 이미지 스티칭 기술 정보

CSS를 사용하여 그림자 효과 얻기

위 내용은 CSS를 사용하여 iOS7을 모방한 스위치 버튼 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.