css实现自定义按钮的样式实际上很早就有了,只是会用的人不是很多,里面涉及到了最基础的css写法,在火狐中按钮还是会显示出来,这时需要将i标签的背景设置为白色,同时z-index设置比input高一些,这样才可以把按钮盖住,同时注意:background-color放在background后才起作用
/*自定义按钮 */ .invoice-class-type{ position:relative; display:inline-block; 120px; height:30px; line-height:30px; text-align: center; } .invoice-class-type>input[type="radio"]{ position:absolute; display:block; height:1px; widht:1px; left:0; top:0; } .invoice-class-type>input[type="radio"]+i{ display:block; position:absolute; left:0; top:0; z-index:10; line-height:30px; 120px; height:30px; border:1px solid #888; border-radius:2px; cursor:pointer; background-color:#fff; } .invoice-class-type>input[type="radio"]:checked+i{ border-color:#f30026; background:url(../images/modify-img/red_right.png) no-repeat right bottom; background-color:#fff; } /*结束 自定义按钮*/
效果图:
又例如:单选按钮时只需要注意name属性就行
/*checkbox*/ .s-checkbox{ position:relative; display: inline-block; } .shopping_table_check1{ position:relative; } .shopping_table_check1>span:before{ margin-top:20px; } input[type="radio"].custom-checkbox, input[type="checkbox"].custom-checkbox{ position: absolute; z-index: -100; height: 1px; 1px; top:0; left:0; } input[type="radio"].custom-checkbox+span:before, input[type="checkbox"].custom-checkbox+span:before{ display: inline-block; content: "a0"; 18px; height: 18px; line-height: 18px; font-weight:800; text-align: center; box-shadow: 0 1px 2px rgba(0,0,0,.05); border:1px solid #f30026; background-color:#fff; color:#fff; } input[type="radio"].custom-checkbox:checked+span:before, input[type="checkbox"].custom-checkbox:checked+span:before{ box-shadow:none; background-color:#f30026; content: "√"; } /*结束 checkbox*/
效果图如下:
结合css3写炫酷按钮
CSS
.animate-checkbox{ position: relative; display: inline-block; 60px; height:30px; border-radius: 15px; background-color:#fff; box-shadow: 1px 0 3px #333; margin-top: 30px; cursor: pointer; } .animate-checkbox input{ position: absolute; top:0; left:0; height:1px; 1px; z-index: 1; } .animate-checkbox i{ position: absolute; left:0; top:0; background-color: #428bca; 30px; height: 30px; border-radius: 15px; z-index: 2; transition: width linear .2s; } .animate-checkbox i:before{ display: block; position: absolute; content:" "; left:0; top:0; 30px; height: 30px; border-radius: 100%; background-color:#f30026; transition: left linear .2s; } .animate-checkbox input[type="checkbox"]:checked+i{ 60px; transition: width linear .2s; } .animate-checkbox input[type="checkbox"]:checked+i:before{ left:30px; transition: left linear .2s; }
DOM 结果
<label class="animate-checkbox"> <input type="checkbox" name=""> <i></i> </label>
效果图
没选中
选中