选择复选框时如何显示复选标记?

时间:2019-03-07 13:20:02

标签: html css css3 checkbox

我有一个复选框,并且我将其样式更改为一个圆圈。现在,当用户选择复选框时,我需要显示复选标记。

如果我删除了-webkit-appearance: none;,那么我明白了,但是我的CSS无法正常工作。

我该怎么做?

.checkbox_round {
  width: 18px;
  height: 18px;
  background-color: white;
  border-radius: 50%;
  vertical-align: middle;
  border: 1px solid #ddd;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
}

.checkbox_round:hover {
  border-color: #000;
}

.checkbox_round:checked {
  background-color: #f00;
}
<label><input type="checkbox" name="name1" value="1" class="checkbox_round"> check box1 </label>

<label><input type="checkbox" name="name2" value="2" class="checkbox_round"> check box1 </label>

<label><input type="checkbox" name="name3" value="3" class="checkbox_round"> check box1 </label>

2 个答案:

答案 0 :(得分:1)

您可以使用背景图像。我建议你一个svg。

.checkbox_round {
  width: 18px;
  height: 18px;
  background-color: white;
  border-radius: 50%;
  vertical-align: middle;
  border: 1px solid #ddd;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
}

.checkbox_round:hover {
  border-color: #000;
}

.checkbox_round:checked {
  background-image: url(https://cdns.iconmonstr.com/wp-content/assets/preview/2012/240/iconmonstr-check-mark-1.png);
  background-size: 50%;
  background-position: center center;
  background-repeat: no-repeat;
}
<label><input type="checkbox" name="name1" value="1" class="checkbox_round"> check box1 </label>

答案 1 :(得分:1)

您可以使用CSS进行选中标记,也可以仅使用unicode选中标记。您也可以只添加已建议的图像。

以下是前两种可能的方法:

.checkbox_round {
  width: 18px;
  height: 18px;
  background-color: white;
  border-radius: 50%;
  vertical-align: middle;
  border: 1px solid #ddd;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
}

.checkbox_round:hover {
  border-color: #000;
}

.checkbox_round {
  position: relative;
}

.checkbox_round:checked {
  background-color: #f00;
}

.checkbox_round:checked:before {
  content: "✓";
  left: 3px;
  top: -2px;
  position: absolute;
}

.checkbox2:checked:before {
  content: "";
  border: 1px solid black;
  border-width: 1px 1px 0 0;
  height: 5px;
  width: 13px;
  position: absolute;
  transform: rotate(135deg);
  left: 3px;
  top: 2px;
}
<label><input type="checkbox" name="name1" value="1" class="checkbox_round"> check box1 </label>

<label><input type="checkbox" name="name2" value="2" class="checkbox_round checkbox2"> check box1 </label>