优化单选框 radio 样式:随点击变换选中和未选中状态图片

2023-04-13 14:19:12 浏览数 (1)

果酱小程序的页面管理,其中一个模块是图片魔方,就是用户可以给小程序首页设置不同数量和布局的图片魔方来装修,其中在设置图片模仿的时候,要选择几张图布局是怎么布局的,如下图所示:

这里的布局其实是一个单选框 radio,为了加强用户体验,我们通过示意图来演示这个布局下的图片魔方在小程序前端的效果,为区分选中和未选中状态,每种布局需要两种状态。

原本以为这个需要通过 JS 来处理,后面发现通过简单的 CSS 也可以实现,我只需要把相关的 HTML 和 CSS 代码贴出来,你就能看得懂:

1. HTML 结构:

代码语言:javascript复制
<input id="layout_3-1" class="" name="layout" type="radio" value="3-1" />
<label id="label_layout_3-1" for="layout_3-1"> </label>

<input id="layout_3-2" class="" name="layout" type="radio" value="3-2" />
<label id="label_layout_3-2" for="layout_3-2"> </label>

<input id="layout_3-3" class="" name="layout" type="radio" value="3-3" />
<label id="label_layout_3-3" for="layout_3-3"> </label>

2. 相关 CSS:

代码语言:javascript复制
label{
	display:inline-block;
	width:150px;
	height:75px;
	background-repeat:no-repeat;
	background-size: contain;
	margin-right:10px;
}

input[type="radio"]{	// 隐藏 radio
	display: none;
}

#label_layout_3-1{	// 未选中的效果
	background-image: url(cube-radio-3-1.png);
}

#layout_3-1:checked   #label_layout_3-1 {	// 选中的效果,使用了 CSS 相邻兄弟选择器
	background-image: url(cube-radio-selected-3-1.png);
}

#label_layout_3-2{
	background-image: url(cube-radio-3-2.png);
}

#layout_3-2:checked   #label_layout_3-2 {
	background-image: url(cube-radio-selected-3-2.png);
}

#label_layout_3-3{
	background-image: url(cube-radio-3-3.png);
}

#layout_3-3:checked   #label_layout_3-3 {
	background-image: url(cube-radio-selected-3-3.png);
}

0 人点赞