html - 尝试在选中时更改自定义复选框标签的颜色,仅限 CSS

标签 html css

我可以更改复选框的颜色,但我似乎无法更改文本标签的颜色。我想用 CSS 来做到这一点。这是我的代码。

.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
}

.container:hover input~.checkmark {
  background-color: #ccc;
}

.container+label input:checked~.checkmark {
  background-color: #2196F3;
  color: blue;
}

.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

.container input:checked~.checkmark:after {
  display: block;
}

.container .checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
<label class="container">One
      <input type="checkbox" checked="checked">
      <span class="checkmark"></span>
    </label>
<label class="container">Two
      <input type="checkbox">
      <span class="checkmark"></span>
    </label>
<label class="container">Three
      <input type="checkbox">
      <span class="checkmark"></span>
    </label>
<label class="container">Four
      <input type="checkbox">
      <span class="checkmark"></span>
    </label>

我尝试像许多其他网站上提到的那样添加带有复选框的标签选择器,但它不起作用..

非常感谢您的帮助,我为此花费了很多时间,如果能找到解决方案,我将感到非常欣慰。提前致谢!!

最佳答案

添加以下 css 规则,该规则应更改颜色:

label.container {
    color: #7cbb7c;
}

更新

更改复选框的 html,如下所示:

<label class="container">
  <input type="checkbox" checked="checked">
  <span class="label">One</span>
  <span class="checkmark"></span>
</label>

添加以下 CSS 规则:

input:checked ~ span.label {
   color: #ff00ff;
}

您可以在这里找到更多相关信息:CSS element1~element2 Selector

示例

.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
}

.container:hover input~.checkmark {
  background-color: #ccc;
}

.container input:checked~.checkmark {
  background-color: #2196F3;
}

/* Add the following css rule: */
.container input:checked~span.label {
  color: #ff00ff;
}

.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

.container input:checked~.checkmark:after {
  display: block;
}

.container .checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
<label class="container">
  <input type="checkbox" checked="checked">
  <span class="label">One</span>
  <span class="checkmark"></span>
</label>

<label class="container">
  <input type="checkbox">
  <span class="label">Two</span>
  <span class="checkmark"></span>
</label>
<label class="container">
  <input type="checkbox">
  <span class="label">Three</span>
  <span class="checkmark"></span>
</label>
<label class="container">
  <input type="checkbox">
  <span class="label">Four</span>
  <span class="checkmark"></span>
</label>

关于html - 尝试在选中时更改自定义复选框标签的颜色,仅限 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49355676/

相关文章:

html - 空格之间的空格在 iOS 上不起作用

html - 如何用行制作一行 div?

html - 子 DIV 不会显示在父 DIV 内部

javascript - 为什么 'focus-within' 在 Safari 中不起作用

html - flex 元素之间的相等空间

css - 覆盖 Bootstrap float 和 margin

html - 在同一个 12 列网格中对齐超大屏幕图像

html - 标题为全宽但内容受限时的 CSS 网格

html - 如何转义字符串中的特定 HTML 标记

javascript - 添加动态类时的 Css 类优先级