自定义单选框样式方法

自定义单选框样式方法元素的初始样式都不怎么好看,我们一般修改样式会想到直接在那元素上添加样式,比如background、border等,在大多数元素上是可以这么做,但当遇上了单选框会毫无反应。例:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF

大家好,又见面了,我是你们的朋友全栈君。

元素的初始样式都不怎么好看,我们一般修改样式会想到直接在那元素上添加样式,比如background、border等,在大多数元素上是可以这么做,但当遇上了单选框会毫无反应。

例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>style无法直接修改单选框样式</title>
    <style> .radio{ 
     width: 100px; height: 100px; background-color: red; } </style>
</head>
<body>
<input type="radio" class="radio"/>
</body>
</html>

在这里插入图片描述

怎么解决呢?

使用label进行伪元素(或一些标签,比如i,em,span等)和input绑定,隐藏单选框,显示伪元素,且使用css选择器:checked进行点击后伪元素(或绑定标签)内容(或样式)的修改。

以下例子只是修改伪元素的内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改单选框样式</title>
    <style> /*.radio{*/ /*width: 100px;*/ /*height: 100px;*/ /*background-color: red;*/ /*}*/ .radio { 
     display: none; } /* +代表相邻的元素 */ .radio + i { 
     font-style: normal; text-align: center; font-size: 16px; } /* ::after伪元素,使用伪元素,必须含有content属性,可以为'',但不可不写 */ .radio + i::after { 
     content: '☆'; } /* 点击后伪元素内容变化 */ .radio:checked + i::after { 
     content: '★'; } </style>
</head>
<body>
<label>
    <input type="radio" class="radio" name="aa" id="aa"/>
    <i></i>
    aa
</label>
<label>
    <input type="radio" class="radio" name="aa" id="bb"/>
    <i></i>
    bb
</label>
</body>
</html>

完成后的结果:
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141656.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux系统 ISO下载

    Linux系统 ISO下载Ubuntu14.04.1LTS桌面版本可以从此下载:Intel&AMD/兼容PC 64位 点此下载Intel&AMD/兼容PC32位 点此下载服务器版本可以从此下载:Intel&AMD/兼容PC 64位 点此下载Intel&AMD/兼容PC32位 点此下载14.10桌面版本可以从此下载:Intel&

    2022年5月3日
  • 基于OpenCV3实现人脸识别(实践篇)[通俗易懂]

    基于OpenCV3实现人脸识别(实践篇)[通俗易懂]实践总结:首先了解做人脸识别的步骤 各个算法后面的原理 原理背后的相关知识的了解 人脸识别项目总遇到的问题由于篇幅原因,后面一篇写各个算法背后的原理,原理背后的相关知识的了解,人脸识别项目总遇到的问题首先感谢:https://blog.csdn.net/qq_37406130/article/details/78697244基于Opencv的人脸识别ht…

    2022年6月7日
  • 腾讯云— LAMP 架构个人实践分享

    腾讯云— LAMP 架构个人实践分享LAMP环境通常指Linux环境下,由Apache+MySQL/MariaDB+PHP以及其它相关组件组成的网站服务器架构。目前以LAMP组成的Web应用程序平台广泛被应用,70%以上的访问流量由LAMP提供,所以我们也认同LAMP是最强大的网站解决方案。关于LAMP的环境部署文档随处可搜,腾讯官网环境部署介绍可参阅:手动搭建LAMP环境:https://cloud.tencent.com/document/product/213/38402镜像部署LAMP环境:https://cl

    2022年10月16日
  • 纯CSS实现表单验证[通俗易懂]

    纯CSS实现表单验证[通俗易懂]纯CSS实现表单验证

    2022年4月21日
  • R语言本地安装包教程

    R语言本地安装包教程第一步从R语言官网,下载package:‘Hmisc’,‘data.table’,‘UsingR’。以’data.table’为例,如图,其他两个方法相同。第二步下载好包到本地后,别忘了下载到哪了.然后在R软件选择-程序包-installpackagefromlocalfiles,选择下载好的’data.table’文件;然后选择-程序包-加载程序包-selecton…

    2022年6月27日
  • Nginx负载均衡策略_nginx高可用集群和负载均衡集群

    Nginx负载均衡策略_nginx高可用集群和负载均衡集群nginx的负载均衡策略有4种:轮询(默认)最基本的配置方法,它是upstream的默认策略,每个请求会按时间顺序逐一分配到不同的后端服务器。参数有:项目Valuefail_timeout与max_fails结合使用max_fails设置在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,所有针对该服务器的请求都失败了,那么认为该服务器会被认为是停机了fail_time服务器会被认为停机的时间长度,默认为10s。backup标记该服

    2022年10月13日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号