当前位置: 首页 > 知识库问答 >
问题:

选中时尝试更改自定义复选框标签的颜色,仅CSS[重复]

申查猛
2023-03-14

我可以更改复选框的颜色,但似乎无法更改文本标签的颜色。我想用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>

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

我非常感谢你的帮助,我在这方面花了很多时间,如果能找到解决办法,我会感到非常欣慰。提前谢谢!!

共有2个答案

汝开畅
2023-03-14

选择紧接在第一个指定元素之后(而不是内部)的元素。

span包装标签文本,然后将其移至下一个。选中标记

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

现在您可以这样选择它:

input:checked~.checkmark + .label
css prettyprint-override">.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~.checkmark+.label {
  color: #2196F3;
}

.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>
      <span class="checkmark"></span>
      <span class="label"> First</span>
    </label>

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

<label class="container">
      <input type="checkbox">
      <span class="checkmark"></span>
      <span class="label"> Third</span>
    </label>
楚泳
2023-03-14

添加以下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选择器

.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>
 类似资料:
  • 问题内容: 我尝试设置复选框背景颜色的样式,但是无论做什么都不会改变。我正在使用最新的Firefox 29。 CSS中是否有一些规则更改,或者可能在浏览器中? CSS: 问题答案: 复选框无法设置样式。您将需要一个第三方js插件,这里有很多可用的插件。 如果要自己执行此操作,则基本上涉及隐藏复选框以创建一个元素并对其进行样式设置,然后将其click事件绑定到两个函数,一个用于更改其外观,另一个用于

  • 我想在选择选项中悬停下拉菜单时显示不同的颜色,而不管默认的蓝色。可以使用CSS吗?

  • 我有一个选择框,当选择框被单击并显示所有选项时,我正在尝试更改选项的背景颜色。

  • 如何在android中更改单选按钮的边框颜色? 我想更改android单选按钮的圆圈颜色。 提前感谢。任何帮助都是非常感谢的。 我尝试了不同的解决方案,并担心是否还有其他可绘制的图像

  • 问题内容: 我有一个选择框。通过已引用的CSS文件,已使用不同的颜色来设置选项的样式。我希望能够选择一个选项,然后将关闭的选择框的文本颜色更改为所选选项的颜色。 因此,如果我选择“香蕉”,则文本应从黄色变为红色。 我努力了: 但这仅在我在html文档内的选项标签中定义样式时才有效。 我也尝试过JavaScript: 但这总是返回颜色:白色。getStyle函数在我使用过的其他任何地方都可以使用,因

  • 我正在尝试更改选定选项卡的突出显示颜色。标准似乎是蓝色的,它不是,因为它在蓝色高亮的顶部添加了一个边框。我想知道是什么属性改变了这个颜色。参见下图: