[CSS]フォームにちょっとだけアニメーションを加えて楽しくするスタイルシート -Animated Toggles

フォームのチェックボックスとラジオボタンに余分はタグは使用せずに、ちょっとだけアニメーションを加えて楽しくするスタイルシートを紹介します。

デモのアニメーション

実際の動作は、下記ページで確認できます。

サイトのキャプチャ

Animated Toggles

HTML

チェックボックスもラジオボタンも通常通りにマークアップします。
余分なタグは特にありません。

 <form> 
  <h1>Animated Toggles!</h1>
  <div class="controls">
    <input id='check-1' type="checkbox" name='check-1' checked='checked' />
    <label for="check-1">Apples</label>

     <input id='check-2' type="checkbox" name='check-1' />
    <label for="check-2">Oranges</label>
  </div>

  <div class="controls">
    <input id='radio-1' type="radio" name='r-group-1' />
    <label for="radio-1">Day</label>

    <input id='radio-2' type="radio" name='r-group-1' />
    <label for="radio-2">Night</label>
  </div>

</form>

CSS

スタイルシートはカラーやサイズをお好みに変更するだけで、簡単に利用できそうですね。

input[type='radio'],
input[type='checkbox'] {
  display: none;
}
input[type='radio'] + label,
input[type='checkbox'] + label {
  cursor: pointer;
  display: inline-block;
  position: relative;
  padding-left: 25px;
  margin-right: 10px;
  color: #0b4c6a;
}
input[type='radio'] + label:before, input[type='radio'] + label:after,
input[type='checkbox'] + label:before,
input[type='checkbox'] + label:after {
  content: '';
  font-family: helvetica;
  display: inline-block;
  width: 18px;
  height: 18px;
  left: 0;
  bottom: 0;
  text-align: center;
  position: absolute;
}
input[type='radio'] + label:before,
input[type='checkbox'] + label:before {
  background-color: #fafafa;
  -webkit-transition: all 0.3s ease-in-out;
  -moz-transition: all 0.3s ease-in-out;
  -o-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
input[type='radio'] + label:after,
input[type='checkbox'] + label:after {
  color: #fff;
}
input[type='radio']:checked + label:before,
input[type='checkbox']:checked + label:before {
  -webkit-box-shadow: inset 0 0 0 10px #158ec6;
  -moz-box-shadow: inset 0 0 0 10px #158ec6;
  box-shadow: inset 0 0 0 10px #158ec6;
}

/*Radio Specific styles*/
input[type='radio'] + label:before {
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border-radius: 50%;
}
input[type='radio']:checked + label:after {
  content: '\2022';
  position: absolute;
  top: 0px;
  font-size: 19px;
  line-height: 15px;
}

input[type='checkbox'] + label:before {
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  -ms-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
}
input[type='checkbox']:checked + label:after {
  content: "\2713";
  font-size: 14px;
  line-height: 18px;
}

top of page

©2017 coliss