[CSS]フォームにちょっとだけアニメーションを加えて楽しくするスタイルシート -Animated Toggles
Post on:2013年11月28日
フォームのチェックボックスとラジオボタンに余分はタグは使用せずに、ちょっとだけアニメーションを加えて楽しくするスタイルシートを紹介します。
実際の動作は、下記ページで確認できます。
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