css实现单选按钮变复选
有没有想过如何设置复选框和单选按钮的样式,而没有JavaScript? 感谢CSS3,您可以! 这是我们将要构建的内容( 注意 :要了解如何使它们易于访问, 请同时阅读本教程 ):
如果您正在寻找一些可用于表单UI元素的图形,请查看Envato Elements中提供的UI工具包 。 否则,请喝杯咖啡,开始使用本教程!
1.了解过程
推荐读物: 必须记住的30个CSS选择器
对于已经对CSS能力充满信心并且只想朝着正确方向前进的那些人,以下是整个教程中最重要CSS行:
input[type="checkbox"]:checked + label {
}
现在,对于那些觉得您可能需要更多指导的人,不要害怕,请继续阅读!
好了,现在回到话题。 我们到底要做什么? 好吧,由于CSS3的小巧的:checked伪选择器,我们能够根据元素的已检查(或未检查)状态来定位其元素。 然后,我们可以使用CSS2.1中的+相邻兄弟选择器来将元素直接定位到复选框或单选框之后,在我们的示例中为标签。
2.设置我们HTML
现在,我们首先创建HTML和CSS文件(或者您更喜欢处理样式)并开始工作。 我假设您知道如何执行此操作,因此我们无需介入。
为了让您步入正轨,我只会在一个复选框上演示此技术,但是单选按钮的过程是相同的,并且包含在源代码中。
好吧,让我们开始吧,好吗? 我们首先创建复选框输入,然后创建标签。
<input type="checkbox" />
<label>Styled Check Box</label>
现在,以防万一您对<label>元素不太了解,您必须连接输入和标签,以便通过标签与输入进行交互。 这可以通过使用for=""和输入的ID来完成。
<input type="checkbox" id="c1" name="cc" />
<label for="c1">Check Box 1</label>
我还将在标签内添加<span> ,这比其他任何东西都更个人喜好,但是在步骤3中所有内容都会变得清晰。
3.我们在这里做什么:CSS
这就是乐趣的开始。 我们要做的第一件事是隐藏整个复选框,这是整个教程的基础。
input[type="checkbox"] {
display:none;
}
现在,我们可以为标签设置样式,更具体地说,可以设置标签内部的跨度。 我这样做是为了使自己能够更好地控制复选框的确切位置。 没有它,您可能会直接在标签中使用背景图像,并且放置它可能会变得困难。
input[type="checkbox"] {
display:none;
}
input[type="checkbox"] + label span {
display:inline-block;
width:19px;
height:19px;
background:url(check_radio_sheet.png) left top no-repeat;
}
好吧,让我快速解释一下。 首先,请注意背景。 我有一个小的精灵表,所以我要做的就是在此跨度上设置背景位置。 跨度本身就是图纸中每个“精灵”的确切宽度和高度,因此可以轻松定义每种状态。
这是其余CSS,专门针对我的样式。 这纯粹是出于美学目的,特定于我的品味或此设计。
input[type="checkbox"] {
display:none;
}
input[type="checkbox"] + label span {
display:inline-block;
width:19px;
height:19px;
margin:-2px 10px 0 0;
vertical-align:middle;
background:url(check_radio_sheet.png) left top no-repeat;
cursor:pointer;
}
4.使之工作
没有太多的工作要做,所以让我们总结一下。 您需要做的最后一件事是在检查输入时为元素提供状态,还可以选择在悬停时提供状态。 这很简单,看看吧!
input[type="checkbox"] {
display:none;
}
input[type="checkbox"] + label span {
display:inline-block;
width:19px;
height:19px;
margin:-2px 10px 0 0;
vertical-align:middle;
background:url(check_radio_sheet.png) left top no-repeat;
cursor:pointer;
}
input[type="checkbox"]:checked + label span {
background:url(check_radio_sheet.png) -19px top no-repeat;
}
注意,因为我使用了一张精灵表,所以我要做的就是更改背景位置。 还要注意,当您“选中”复选框/单选按钮时,为标签的跨度设置样式所需要做的就是使用CSS3 :checked伪选择器。
浏览器支持快速说明
伪选择器在所有浏览器中都具有强大的支持,但通常存在一些警告,并且后备功能非常优美:
早期的移动浏览器也是一个问题 -对:checked支持尚不清楚。 例如,iOS 6之前的Mobile Safari 不支持它。
结论
好了,我们完成了,对吧? 好吧,让我们仔细检查一下。 首先是HTML:
你看起来一样吗? 不要忘记在<span>添加! 自己尝试时,强烈建议您找到执行此部分的新方法或不同方法。 我很想看看您想出什么来提高效率。 现在为CSS:
一切都在吗? 完善。 请记住,这种样式很多是我为演示文件创建的样式所特有的。 我鼓励您创建自己的,并尝试进行展示和展示。
总之,您可以从中带走的最重要的事情是我在最顶层编写CSS的第一行:
使用此功能,您可以创建各种不同事物的整体方式。 :checked的可能性超出了复选框和单选框形式的使用范围,但是我会让您自己尝试一下。 一些可以尝试的东西:
希望您喜欢这篇简短的文章,也希望您能从中看到并扩大或改进!
最后,无论您是刚刚开始使用基础知识还是想探索更高级CSS,我们都构建了完整的指南来帮助您学习 CSS。
css实现单选按钮变复选
本文介绍了如何使用CSS3不依赖JavaScript来改变单选按钮的外观,使其呈现复选框的效果。通过利用CSS3的伪选择器和相邻兄弟选择器,可以定位并样式化与输入元素关联的标签,实现自定义的表单UI设计。虽然这种方法在早期移动浏览器中可能存在兼容性问题,但它为表单元素的视觉呈现提供了无限可能性。

448

被折叠的 条评论
为什么被折叠?



