自定义radio、checkbox的样式

input标签中的radio和checkbox是很表单中常用的类型,大多时候,默认样式并不能满足我们的需求,所以有了此篇。

自定义样式,由此开启:

html:

<div class="questionBlock3">
	<h6>2)请问你喜欢哪种水果?</h6>
	<div class="answerRadioBox">
		<label><input name="Fruit" type="radio" value="" /><font>苹果</font></label> 
		<label><input name="Fruit" type="radio" value="" /><font>苹果2</font> </label> 
		<label><input name="Fruit" type="radio" value="" /><font>苹果3</font></label> 
		<label><input name="Fruit" type="radio" value="" /><font>苹果4</font></label> 
	</div>
</div>

<div class="questionBlock4">
	<h6>2)请问你喜欢哪些水果?</h6>
	<div class="answerCheckBox">
		<label><input name="demoCheck" type="checkbox" value="" /><font>苹果 </font></label> 
		<label><input name="demoCheck" type="checkbox" value="" /><font>苹果2 </font></label> 
		<label><input name="demoCheck" type="checkbox" value="" /><font>苹果3 </font></label> 
		<label><input name="demoCheck" type="checkbox" value="" /><font>苹果4 </font></label> 
		<label><input name="demoCheck" type="checkbox" value="" /><font>苹果5</font></label> 
		<label><input name="demoCheck" type="checkbox" value="" /><font>苹果6</font></label> 
	</div>
</div>

 

css:

.answerRadioBox,.answerCheckBox{
	width: 100%;
	height: auto;
	color: #fff;
	font-size: 0;
	padding:0.6rem 0 0.3rem 0;
	border-bottom: 1px solid #fff;
}

.answerRadioBox label,.answerCheckBox label{
	width: 25%;
	padding:0.2rem 0;
	font-size: 0.6rem;
	display: inline-block;
	position: relative;
}

.answerRadioBox label font,.answerCheckBox label font{
	padding-left: 0.8rem;
}

.answerRadioBox input[type="radio"] + font::before {
    content: "\a0"; /*不换行空格*/
    display: inline-block;
    position: absolute;
    top:50%;
    left:0;
    transform: translateY(-50%);
    width: 0.56rem;
    height: 0.56rem;
    border-radius: 50%;
    border: 1px solid #c9c9c9;
    box-sizing: border-box;
}

.answerRadioBox input[type="radio"]:checked + font::before {
    background-color: #c9c9c9;
    background-clip: content-box;
    padding: 0.15em;
}

.answerRadioBox input[type="radio"] {
    position: absolute;
    clip: rect(0, 0, 0, 0);
}

.answerCheckBox input[type='checkbox']{
    width: 0.56rem;
    height: 0.56rem;
    background: none;
    -webkit-appearance: none;
    border: 1px solid #c9c9c9;
    border-radius: 2px;
    outline: none;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
}

.answerCheckBox input[type=checkbox]:checked::before{
   content: "\2713";
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   color: #c9c9c9;
   font-weight: bold;
   text-align:center;
   font-size:0.8rem;
   line-height:0.5;
}

  

效果图如下:

 

  

主要是用到了伪元素,可以任意更换颜色,或者使用背景图片也可以。

“\2713”表示实体符号√,想了解更多可以去 html css特殊字符表 查阅

转载于:https://www.cnblogs.com/nanyang520/p/11224561.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值