eazy ui 复选框单选_UI设计:使用CSS3自定义复选框和单选按钮

使用CSS3,我们可以自定义Web演示文稿,使其几乎成为我们想要的任何内容。 如标题所示,在本文中,我们将自定义checkboxradio输入的外观。

这两种类型的输入都是一些样式元素,这些样式元素在样式上有些棘手(以在不同平台上实现相同的外观)– WindowsOS XLinux具有自己的设计来显示这些表单元素。

如果要定制这两个表单元素,那么本教程适合您。 因此,让我们开始吧。

HTML标记

我们首先创建一个新HTML文档。 HTML结构如下。

<div class="radio">
	<input id="male" type="radio" name="gender" value="male">
	<label for="male">Male</label>
	<input id="female" type="radio" name="gender" value="female">
	<label for="female">Female</label>
</div>
<div class="checkbox">
	<input id="check1" type="checkbox" name="check" value="check1">
	<label for="check1">Checkbox No. 1</label>
	<br>
	<input id="check2" type="checkbox" name="check" value="check2">
	<label for="check2">Checkbox No. 2</label>
</div>

CSS

我们已经完成了HTML结构,现在让我们为这些<input>设置样式。 我们将首先自定义无线电输入类型。 想法是将默认的操作系统设计更改为以下屏幕截图所示。

样式单选输入

首先,我们将标签光标指向一个指针,以指示它是可单击的,然后插入其他装饰样式。

label {
	display: inline-block;
	cursor: pointer;
	position: relative;
	padding-left: 25px;
	margin-right: 15px;
	font-size: 13px;
}

然后,我们将隐藏输入的radio类型。

input[type=radio] {
	display: none;
}

然后,我们用伪元素:before替换了隐藏的输入radio类型。

label:before {
	content: "";
	display: inline-block;

	width: 16px;
	height: 16px;

	margin-right: 10px;
	position: absolute;
	left: 0;
	bottom: 1px;
	background-color: #aaa;
	box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8);
}

上面的样式实际上也适用于复选框输入类型。 唯一的区别是无线电输入类型是一个圆。 为了达到这种效果,我们添加了半径为高度和宽度一半的border-radius

.radio label:before {
	border-radius: 8px;
}

在此阶段,这是我们的radio输入类型的外观。

现在,当选中此输入时,我们在其中添加了一个小圆圈。 我们将使用CSS3 :checked伪类以及Bullet HTML字符( &#8226; )。 此项目符号将通过content属性交付,因此我们需要使用Entity Conversion Tool将此CSS字符转换为CSS。

input[type=radio]:checked + label:before {
    content: "\2022";
    color: #f3f3f3;
    font-size: 30px;
    text-align: center;
    line-height: 18px;
}

因此,当选中或选择输入单选按钮(隐藏)时,将出现一个较小的圆圈,如以下屏幕截图所示。

另外,您也可以使用图像,并通过:before我们在前面添加的伪元素中background-image属性显示它。 我没有使用它,因为我倾向于不使用图像。

样式复选框输入

现在,我们将样式添加到checkbox输入类型。 首先,我们还隐藏了输入元素。

input[type=checkbox] {
	display: none;
}

由于我们将输入替换为:before 伪元素之前,因此我们现在只需添加边框半径。

.checkbox label:before {
	border-radius: 3px;
}

接下来,我们将以与radio输入类型相同的方式添加选中的符号。 这次我们使用复选标记HTML字符( &#10003; )。

input[type=checkbox]:checked + label:before {
	content: "\2713";
	text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
	font-size: 15px;
	color: #f3f3f3;
	text-align: center;
    line-height: 15px;
}

这就是我们的复选框现在的样子。

最终思想

这只是自定义checkboxradio输入类型的一种技术,当然您可以增强外观以使其更震撼。 另外,由于我们使用CSS3 :checked ,因此该技术仅在支持它的浏览器中有效。 因此,如果您愿意,还可以使用jQuery Plugin

最后,您可以查看演示并从下面的链接下载源代码。


翻译自: https://www.hongkiat.com/blog/css3-checkbox-radio/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值