<div class="wrap">
<label>性别:</label> <div class="cb-wrap"> <!-- 整体为一个checkbox,用div包裹 -->
<input type="radio" name="sex1" value="男"></input> <!-- 需要隐藏,置于最上层 -->
<span class="cb-icon"></span> <!-- 加伪元素,模拟checkbox样式 -->
<span class="cb-label">男</span> <!-- 当选中时,字体颜色也得改变 -->
</div> <div class="cb-wrap">
<input type="radio" name="sex1" value="女"></input>
<span class="cb-icon"></span>
<span class="cb-label">女</span>
</div> </div>

css实现:

.wrap {
label {
display: inline-block;
width: 50px;
text-align: right;
margin-right: 15px;
}
} .cb-wrap {
display: inline-block; // 将div元素设置成行内元素,不然尽管设置的宽度较小,还是会占据一行 width: 50px;
height: 30px;
margin-right: 15px;
line-height: 30px; position: relative; // 设置定位 input {
opacity: 0; // 设置透明度为0
width: 100%; // 设置宽度为一个checkbox(.cb-wrap)的宽度
height: 100%;
z-index: 2; // 置于最上层
position: absolute; // 相对于.cb-wrap定位
top: 0;
left: 0;
} // 用伪类:checked,实现checkbox选中状态时改变其它元素样式
input:checked + span { // 用“相邻兄弟选择器”,改变模拟checkbox的颜色
background: red;
} input:checked ~ .cb-label { // 用“同级元素通用选择器”,改变字体的颜色
color: red;
} .cb-icon { // 实现模拟checkbox
display: inline-block; // span设宽,必须得设置成块级元素!
width: 16px;
height: 16px;
border: 1px solid #ddd;
border-radius: 8px;
position: relative; // 相对于自身原来的位置定位,使其与字体对齐
top: 3px; &:after { // 伪元素实现对勾(√)部分
content: "";
display: inline-block;
width: 9px;
height: 6px;
border-left: 1px solid #fff;
border-bottom: 1px solid #fff;
transform: rotate(-45deg);
position: absolute;
top: 3px;
right: 3px;
}
}
}

(示例2相对实例1较为简单,不需要用为元素实现模拟的checkbox,也少了一个span元素,区别在于cb-icon的实现不同)
<div class="wrap">
<label>性别:</label> <div class="cb-wrap">
<input type="radio" name="sex2" value="男"></input>
<span class="cb-icon">男</span>
</div> <div class="cb-wrap">
<input type="radio" name="sex2" value="女"></input>
<span class="cb-icon">女</span>
</div> </div>

css实现:

.cb-wrap {
display: inline-block; width: 50px;
height: 30px;
margin-right: 15px;
line-height: 30px;
position: relative; input {
opacity: 0;
width: 100%;
height: 100%;
z-index: 2;
position: absolute;
top: 0;
left: 0;
} input:checked + span {
background: orange;
color: #fff;
} .cb-icon {
display: inline-block;
width: 50px;
height: 25px;
border: 1px solid #ddd;
text-align: center;
line-height: 25px;
}
}

CSS 实现:checkbox的更多相关文章

  1. 用CSS美化checkbox复选按钮和raido单选按钮-适用于移动端

    最终效果: 实现方法 index.html: <!DOCTYPE html> <html> <head> <title></title> & ...

  2. 纯css实现checkbox开关切换按钮

    我们都知道 checkbox 标签默认样式 实在是太low了,故对CheckBox美化很有必要. 现提供两种方式对其进行美化. 方法一 <div class="switch-wrap ...

  3. ZH奶酪:利用CSS将checkbox选项放大

    在Hybrid App开发过程中,html中默认的checkbox选项在手机屏幕上显得比较小,app不能像web page那样放大缩小,所以要通过CSS将checkbox选项放大: 例如HTML代码: ...

  4. css input checkbox和radio样式美化

    参考:https://segmentfault.com/a/1190000004553258 http://www.haorooms.com/post/css_mh_ck_radio 思路都一样的,先 ...

  5. 转 纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

  6. 【转】纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

  7. CSS控制checkbox样式

    原文地址:http://www.xiumu.org/technology/style-checkboxes-with-css.shtml#comments Checkbox复选框是一个可能每一个网站都 ...

  8. 纯CSS设置Checkbox复选框控件的样式

    Checkbox复选框是一个可能每一个网站都在使用的HTML元素,但大多数人并不给它们设置样式,所以在绝大多数网站它们看起来是一样的.为什么不把你的网站中的Checkbox设置一个与众不同的样式,甚至 ...

  9. css 设置 checkbox复选框控件的对勾√样式

      效果 最终的样式,想要的效果:   我们要创建方框中的对勾,对于这一点,我们可以使用:after伪类创建一个新的元素,为了实现这个样式,我们可以创建一个5px * 15px的长方形并给他加上边框. ...

  10. 利用纯CSS美化checkbox和radio和滑动按钮的实现

    W3C提供的CheckBox和radio的原始样式非常的丑,而且在不同的额浏览器表现还不一样,使用常规的方法添加样式没法进行修改样式 一, 单选按钮 <html> <head> ...

随机推荐

  1. word2013设置页面边框

    如图:

  2. c++实现之 -- 文章TF-IDF值的计算

    首先,是关键词的选取: 好吧这个我这模型实在是太简单了,但还是讲一讲比较好呢... 我们现在手头有的是一堆百度百科词条w的DF(w, c)值,c是整个百科词条...原因是...方便嘛~(而且人家现成的 ...

  3. Solr 4.3.0 配置Data import handler时出错

    启动solr的时候,居然出现了如下的错误: org.apache.solr.common.SolrException: RequestHandler init failure        at or ...

  4. hdu 4619 Warm up 2

    http://acm.hdu.edu.cn/showproblem.php?pid=4619 根据题意可知,每一个方格可能只被一个骨牌覆盖 可能被两个骨牌覆盖 也可能不被覆盖 有一个骨牌覆盖的方格(单 ...

  5. outlook新邮件到达提醒设置以及outlook最小化到托盘设置

    有些邮件是需要马上处理的,因此希望能在收到邮件之后马上就知道,但是有不希望频繁的去检查有没有.outlook可以帮我们轻松做到新邮件到达提醒. 一 .设置outlook新邮件到达提醒:选项->电 ...

  6. 新浪微博数据抓取(java实现)

    多了不说,直接贴出相关部分的实现代码 加密部分实现: package token.exe; import java.math.BigInteger; import java.util.Random; ...

  7. Word2013可以写博客

    步骤如下http://www.cnblogs.com/guyichang/p/4629211.html

  8. idea给web项目添加tomcat

    首先,你需要新建一个web项目 生成这个样子: 我们可以新建lib文件夹用来装载必要jar,和新建classess文件夹用来存储编译后文件,这样感觉和myeclipes的项目相似. 进入项目设置,修改 ...

  9. IOS文件管理-NSFileMangager-NSdata

    Ios下的文件管理, Ios下不像windows 文件系统那样可以访问任何的文件目录,如C盘.D盘什么的.在Ios中每个应用程序只能访问当前程序的目录,也即sandbox(沙盒模型). iOS为每个应 ...

  10. redis——基础介绍

    转自:http://www.cnblogs.com/xing901022/p/4863929.html 1 什么是Redis Redis(REmote DIctionary Server,远程数据字典 ...