[CSS]フォームにちょっとだけアニメーションを加えて楽しくするスタイルシート -Animated Toggles
Post on:2013年11月28日
sponsorsr
フォームのチェックボックスとラジオボタンに余分はタグは使用せずに、ちょっとだけアニメーションを加えて楽しくするスタイルシートを紹介します。

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

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: '22';
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: "13";
font-size: 14px;
line-height: 18px;
}
sponsors











