input[type="radio"]自定义样式

input为radio时,虽然会有默认选中的样式,但是并不符合大多数项目的需求,我们的目标是可以随心所欲自定义它的样式。怎么做呢?其实很简单,只要抓住3点。分别是1.label 2.隐藏自带样式 3.绘制我们的样式。

首先,我们准备了一个简单的选中样式,看图:

下面我们看看怎么实现

1.label

我们都知道,label可以和input关联,达到点击label就触发input的效果。

既然这样,我们就要充分的利用它。

<label for="cat" class="radio-box">
    <input type="radio" name="group" id="cat">
    <span class="radio-style">猫</span>
</label>
<label for="dog" class="radio-box">
    <input type="radio" name="group" id="dog">
    <span class="radio-style">狗</span>
</label>

看看这个简单的结构,label里面包了一个input和span,可以想象,我们的效果就是点击label触发input

我们看一下效果

2.隐藏自带样式

如何隐藏自带样式呢?方法很多,这里提供一种常用的写法

input[type="radio"] {
    opacity: 0;
    width: 0;
    height: 0;
}

这样我们就看不到input自带的丑陋选择框了,再看一下效果,oh,yeah!消失了。

3.绘制自己的样式

利用span标签绘制自己的样式

.radio-style::before {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid #d9d9d9;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    content: "";
}

input[type="radio"]:checked + .radio-style::before {
    padding: 4px;
    background-color: blue;
    background-clip: content-box;
    border-color: blue;
}

我们利用伪元素,给它绘制一个圆圈,然后在选中状态的时候,在改变它的样式,从而达到第一张图的效果。

以下是所有代码的地址,欢迎查看

input-radio

当然以上是最简单自定义样式,我们还可以把它绘制成按钮的形式,甚至是用图片代替它。虽然这样更加繁琐,但是万变不离其宗,只要掌握上面3点,你就可以随心所欲修改它的样式啦。

原文地址:https://www.cnblogs.com/yky-iris/p/9142581.html

时间: 2024-08-29 21:52:13

input[type="radio"]自定义样式的相关文章

自定义input[type=&quot;radio&quot;]的样式

对于表单,input[type="radio"] 的样式总是不那么友好,在不同的浏览器中表现不一. 为了最大程度的显示出它们的差别,并且为了好看,首先定义了一些样式: html: <form action=""> <div class="sex"> <div class="female"> <label for="female">女</label>

jquery-fileupload IE8IE9无法上传图片的BUG及如何给input[type=file]自定义样式

先说IE9,点击上传后,浏览器会提示下载内容. 原因:IE9及以下上传文件的响应头的contentType 如果是json,浏览器会以为是文件下载. 处理方法:找后台GG,把contentType改为text/html. 再修改done方法,获得地址 done: function(e, data){ var result = data.result[0].body ? data.result[0].body.innerHTML : data.result; result = JSON.parse

纯css兼容个浏览器input[type=&#39;radio&#39;]不能自定义样式

各个浏览器对于表单input[type='radio'].input[type='checkbox']的样式总是各有差异 //html <div class="remember-account"> <input type="checkbox"> <span>记住账号</span> </div> //css .remember-account { display: inline-block; font-siz

自定义input[type=&quot;file&quot;]的样式

input[type="file"]的样式在各个浏览器中的表现不尽相同: 1. chrome: 2. firefox: 3. opera: 4. ie: 5. edge: 另外,当我们规定 input[type="file"] 的高度,并把它的行高设置成与其高度相等后,chrome中难看的样式出现了: “未选择任何文件”这一行并没有竖直居中. 似乎在 firefox 中好看一些,嗯,我比较喜欢用 firefox.但是这些浏览器中的表现不一致,我们必须做兼容处理. 思

如何更改 iOS 和安卓浏览器上的 input[type=&quot;radio&quot;] 元素的默认样式?

Safari 上的默认样式是这样的, 背景颜色可以使用background-color改变,但中间那个点始终无法去掉. 我查了一些jQuery插件,如iCheck.js,但是那说明写得我都看不明白,根本不知道如何使用. 还有-webkit-appearance:none;属性会直接将input[type="radio"]元素隐藏. 应该如何更改?我的目标只是一个选中时是纯色的圆形,未选中时是带边框的透明圆形. 还可用css伪类写 <h3>CSS3 Custom radio&

利用css3修改input[type=radio]样式

<form> <div> <input id="item1" type="radio" name="item" value="选项一" checked> <label for="item1"></label> <span>选项一</span> </div> <div> <input id=&qu

&lt;input type=&quot;radio&quot; &gt;与&lt;input type=&quot;checkbox&quot;&gt;值得获取

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html> <html> <head> <meta http-equiv="content-

jQuery操作&lt;input type=&quot;radio&quot;&gt;

jQuery操作<input type="radio"> <input type="radio">如下: 1 2 3 4 5 <input type="radio" name="city" value="BeiJing">北京 <input type="radio" name="city" value="TianJi

点击文字,把input type="radio"也选中

1. <label> <input type="radio" name="radiobutton" value="radiobutton" />测试? </label> 2. <label for="radiobutton"> <input type="radio" name="radiobutton" id="radiob