纯css制作漂亮的复选框与单选按钮

2025-11-02 11:47:21

1、首先我们写原生的html,添加几个checkbox与radio,代码如下:

<body>

<h2>复选框</h2>

<div>

          语文<input type="checkbox" id="语文" class="gcs-checkbox">

  <label for="语文"></label> 

数学<input type="checkbox" id="数学" class="gcs-checkbox">

   <label for="数学"></label>

英语<input type="checkbox" id="英语" class="gcs-checkbox">

   <label for="英语"></label> 

计算机<input type="checkbox" id="计算机" class="gcs-checkbox">

  <label for="计算机"></label>

</div> <br />

<hr />

<h2>单选按钮</h2>

<div>

男<input type="radio" name="sex" class="gcs-radio" id="男" />

<label for="男"></label> 

女<input type="radio" name="sex" class="gcs-radio" id="女" />

<label for="女"></label>

</div>

<hr />

</body>

此时没有写css样式,所以是原生的效果,效果如下:

纯css制作漂亮的复选框与单选按钮

2、下面我们开始写css样式,首先给label元素加上样式,设置背景、宽高、显示方式等等,请看代码:

.gcs-checkbox+label {

  background-color: white;

  border-radius: 0px;

  border: 1px solid #d3d3d3;

  width: 20px;

  height: 20px;

  display: inline-block;

  text-align: center;

  vertical-align: bottom;

  line-height: 20px;

}

.gcs-radio+label {

   width: 20px;

   height: 20px;

   line-height: 20px;

   display: inline-block;

   text-align: center;

   vertical-align: bottom;

   border: 1px solid gray;

   border-radius: 50%;

}

效果如下:

纯css制作漂亮的复选框与单选按钮

3、接下来,我们需要把checkbox与radio给默认隐藏起来,因为我们是用label去模拟的,只需要加上一个属性  display: none;代码如下:

.gcs-checkbox {

    display: none;

}

.gcs-radio {

    display: none;

}

效果如下:

纯css制作漂亮的复选框与单选按钮

4、下面给label加上鼠标悬浮显示一个对勾的符号,主要是通过:after这个伪元素实现,如果不明白可以查阅下w3c手册,代码如下:

.gcs-checkbox+label:hover {

  cursor: pointer;

  border: 1px solid #2783FB;

}

.gcs-checkbox:checked+label {

  background-color: #eee;

  background: #2783FB;

}

.gcs-checkbox:checked+label:after {

  content: "\2714";

  color: white;

}

.gcs-radio+label:hover {

  border: 1px solid #2783FB;

  cursor: pointer;

}

.gcs-radio:checked+label {

  background: #2783FB;

  border: 1px solid #2783FB;

}

.gcs-radio:checked+label:after {

  content: "\2022";

  font-size: 35px;

  color: white;

}

好了,现在已经完成了所有工作,效果如下:

纯css制作漂亮的复选框与单选按钮

5、最后,给大家贴上完整的代码,本教程完全使用css实现,没有使用一张图片, 也没有使用jquery,希望能够对您有所帮助。代码如下:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title></title>

</head>

<style type="text/css">

/*复选框*/

.gcs-checkbox {

  display: none;

}

.gcs-checkbox+label {

  background-color: white;

  border-radius: 0px;

  border: 1px solid #d3d3d3;

  width: 20px;

  height: 20px;

  display: inline-block;

  text-align: center;

  vertical-align: bottom;

  line-height: 20px;

}

.gcs-checkbox+label:hover {

  cursor: pointer;

  border: 1px solid #2783FB;

}

.gcs-checkbox:checked+label {

  background-color: #eee;

  background: #2783FB;

}

.gcs-checkbox:checked+label:after {

  content: "\2714";

  color: white;

}

/*单选按钮*/

.gcs-radio {

 display: none;

}

.gcs-radio+label {

  width: 20px;

  height: 20px;

  line-height: 20px;

  display: inline-block;

  text-align: center;

  vertical-align: bottom;

  border: 1px solid gray;

  border-radius: 50%;

}

.gcs-radio+label:hover {

  border: 1px solid #2783FB;

  cursor: pointer;

}

.gcs-radio:checked+label {

  background: #2783FB;

  border: 1px solid #2783FB;

}

.gcs-radio:checked+label:after {

  content: "\2022";

  font-size: 35px;

  color: white;

}

</style>

<body>

<h2>复选框</h2>

<div>

   语文<input type="checkbox" id="语文" class="gcs-checkbox">

        <label for="语文"></label> 

   数学<input type="checkbox" id="数学" class="gcs-checkbox">

         <label for="数学"></label>

   英语<input type="checkbox" id="英语" class="gcs-checkbox">

   <label for="英语"></label> 

  计算机<input type="checkbox" id="计算机" class="gcs-checkbox">

          <label for="计算机"></label>

</div> <br />

<hr />

<h2>单选按钮</h2>

<div>

  男<input type="radio" name="sex" class="gcs-radio" id="男" />

     <label for="男"></label> 

 女<input type="radio" name="sex" class="gcs-radio" id="女" />

     <label for="女"></label>

</div>

<hr />

</body>

</html>

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢