美化表单——单选按钮

作者:hu_time
描述:自定义input单选按钮的样式
例子中改变的是单选框的样式,多选框同理。改变属性即可
代码复制即用可自行更改样式:

改变小圆点的样式:

html:

//按钮容器
<div class="zhifu-box">
     请选择支付方式:</br>
     <label class="radio-item">
         <!-- 默认的按钮 -->
         <input name="gender" type="radio">
         <!-- 自定义的按钮 -->
         <span class="radio"></span>
         <span>微信支付</span>
     </label>
     <label class="radio-item">
         <!-- 默认的按钮 -->
         <input name="gender" type="radio">
         <!-- 自定义的按钮 -->
         <span class="radio"></span>
         <span>微信支付</span>
     </label>
</div>

css:

.zhifu-box{
 width: 95%;
 margin: 0 auto;
 background-color: #fff;
 /* text-align: center; */
}

.radio-item{
    display:inline-block;
    font-size: 1rem;
    display: flex;
    align-items: center;
    margin-top: 0.5rem;
}
/* 自己写的未点击的按钮样式 */
.radio-item .radio{
 display: inline-block;
     width:2rem;
     height: 2rem;
     border: 1px solid #999;
     border-radius: 50%;
     cursor: pointer;
     margin-right: 0.3rem;
 }
 /* 点击按钮的边框颜色 */
 .radio-item input:checked+.radio{
     border-color: #FF4E00;
 }
 /* 点击的文本 */
 /* ~ 代表后续兄弟选择器,选取所有指定元素之后的相邻兄弟元素。 */
 .radio-item input:checked~span{
     color:#FF4E00;
 }
 /* 按钮内部的小圆点 */
 /* + 相邻兄弟选择器,可选择紧接在另一元素后的元素,且二者有相同父元素。 */
 .radio-item input:checked+.radio::after{
     content: "";
     display: block;
     width: 50%;
     height:50%;
     background: #FF4E00;
     border-radius: 50%;
     margin-top: 25%;
     margin-left: 25%;
 }
 /* 隐藏原来的input单选框 */
 .radio-item input[type="radio"]{
     display:none;
 }

将单选框改为按钮形式:

html:

<div class="tuiguang-box">
<label >
		<input name="tuiguang" type="radio">
		<div class="tuiguang">推广礼包</div>
	</label>
	<label >
		<input name="tuiguang" type="radio">
		<div class="tuiguang">推广店铺</div>
	</label>
</div>

css:

.tuiguang-box{
	display: flex;
	height:5rem;
	width:100%;
}
.tuiguang-box label{
	height:100%;
	width: 30%;
}
/* 自己写的未点击的按钮样式 */
.tuiguang-box .tuiguang{
	margin-right: 1rem;
	height:100%;
	border:1px solid #dadada;
	background-color: #fafafa;
	border-bottom-color: #ccc;
	box-shadow: 0 1px 1px rgba(90, 90, 90, 0.1);
	padding: 0.5rem;
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 2px;
 }
 /* 点击按钮的样式 */
 .tuiguang-box input:checked+.tuiguang{
	background-color: #428bca;
	color: #fff;
 }
 /* 隐藏原来的input单选框 */
 .tuiguang-box input[type="radio"]{
     display:none;
 }
美化HTML中的单选按钮,可以使用CSS和JavaScript配合来实现。首先,你可以给每个单选按钮添加一个自定义样式类,比如"radioStyle"。然后,使用CSS来定义这个样式类的外观,包括背景颜色、边框样式、大小等。可以使用伪类选择器:checked来为选中的单选按钮设置不同的样式。例如,可以设置背景颜色和边框样式来区分选中和未选中的状态。接下来,使用JavaScript来监听单选按钮的点击事件,当点击某个单选按钮时,取消其他单选按钮的选中状态,并给当前点击的单选按钮添加选中状态的样式。这样就可以实现单选按钮美化效果了。 例如,在HTML代码中,给每个单选按钮添加class="radioStyle",并使用CSS来定义这个样式类的外观: ```html <h2>我最喜欢的明星</h2> <div class="radioStyle"> <input type="radio" name="like" id="likeL" checked> *** padding: 8px 16px; background-color: #eaeaea; border: 1px solid #ccc; border-radius: 4px; cursor: pointer; } .radioStyle input[type="radio"]:checked + label { background-color: #007bff; color: #fff; } ``` 最后,使用JavaScript来监听单选按钮的点击事件,并切换选中状态的样式: ```javascript var radioButtons = document.querySelectorAll('.radioStyle input[type="radio"]'); radioButtons.forEach(function(button) { button.addEventListener('click', function() { // 取消其他单选按钮的选中状态 radioButtons.forEach(function(otherButton) { if (otherButton !== button) { otherButton.checked = false; } }); // 给当前点击的单选按钮添加选中状态的样式 button.checked = true; }); }); ``` 这样,你就可以通过CSS和JavaScript来美化HTML中的单选按钮了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [美化表单——自定义单选按钮和复选按钮](https://blog.youkuaiyun.com/weixin_33187554/article/details/118049550)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [纯CSS+HTML实现【单选/多选按钮美化特效](https://blog.youkuaiyun.com/weixin_36732046/article/details/103843937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值