首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入:选中不作用于标签CSS

输入:选中不作用于标签CSS
EN

Stack Overflow用户
提问于 2021-03-12 18:22:24
回答 4查看 51关注 0票数 0

我是一个新手,我试着理解复选框是如何工作的,我试着做一个心形复选框,当它被选中时它是彩色的,我用复选的心形覆盖空的心形来做,但它不起作用……

看起来输入并没有作用于标签..。

提前谢谢你

我把代码放在Codepen上:https://codepen.io/steven-fabre/pen/KKNJdBP

代码语言:javascript
复制
input[type="checkbox"]{
    display: none;
}

.heart_checked {
    opacity: 0;
    z-index: 999;
  }

.heart_checked {
    font-weight: bold;
    background:  -webkit-linear-gradient(#9356dc, #FF79DA);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

label{
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 25px;
}

.fa-heart,input{
    cursor: pointer;
    position: absolute;
    right: 24px;
}


label > input[type="checkbox"]:checked + .heart_checked {
    opacity: 1;
}
代码语言:javascript
复制
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.2/css/all.css" integrity="sha384-vSIIfh2YWi9wW0r9iZe7RJPrKwp6bG+s9QZMoITbCckVJqGCCRhc+ccxNcdpHuYu" crossorigin="anonymous">
<label>
  <input type="checkbox">
  <i class="far fa-heart"></i>
  <i class="fas fa-heart heart_checked"></i>
</label>

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-03-12 18:32:33

你犯了一个小错误:

代码语言:javascript
复制
label > input[type="checkbox"]:checked + .heart_checked {
    opacity: 1;
}

必须是

代码语言:javascript
复制
label > input[type="checkbox"]:checked ~ .heart_checked {
    opacity: 1;
}

下面是一个有效的代码片段:

代码语言:javascript
复制
input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.heart_checked {
  opacity: 0;
  z-index: 999;
}

.heart_checked {
  font-weight: bold;
  background: -webkit-linear-gradient(#9356dc, #FF79DA);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

label {
  position: absolute;
  top: 24px;
  right: 24px;
  font-size: 25px;
}

.fa-heart,
input {
  cursor: pointer;
  position: absolute;
  right: 24px;
}

label>input[type="checkbox"]:checked~.heart_checked {
  display: block;
  opacity: 1;
}
代码语言:javascript
复制
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.2/css/all.css" integrity="sha384-vSIIfh2YWi9wW0r9iZe7RJPrKwp6bG+s9QZMoITbCckVJqGCCRhc+ccxNcdpHuYu" crossorigin="anonymous">
<label>
  <input type="checkbox">
  <i class="far fa-heart"></i>
  <i class="fas fa-heart heart_checked"></i>
</label>

票数 0
EN

Stack Overflow用户

发布于 2021-03-12 18:31:28

代码语言:javascript
复制
input[type="checkbox"]{
    display: none;
}

.heart_checked {
    opacity: 0;
    z-index: 999;
  }

.heart_checked {
    font-weight: bold;
    background:  -webkit-linear-gradient(#9356dc, #FF79DA);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

label{
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 25px;
}

.fa-heart,input{
    cursor: pointer;
    position: absolute;
    right: 24px;
}


label > input[type="checkbox"]:checked + .heart_checked {
    opacity: 1;
}
代码语言:javascript
复制
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.2/css/all.css" integrity="sha384-vSIIfh2YWi9wW0r9iZe7RJPrKwp6bG+s9QZMoITbCckVJqGCCRhc+ccxNcdpHuYu" crossorigin="anonymous">
<label>
  <input type="checkbox">
<i class="fas fa-heart heart_checked"></i>
  <i class="far fa-heart"></i>
  
</label>

票数 0
EN

Stack Overflow用户

发布于 2021-03-12 18:33:53

你不需要两个不同的图标:只需要一个在复选框被选中时才填充的图标。

代码语言:javascript
复制
input[type="checkbox"]{
    display: none;
}

label{
    position: absolute;
    top: 24px;
    right: 24px;
    font-size: 25px;
}

.fa-heart,input{
    cursor: pointer;
    position: absolute;
    right: 24px;
}


:checked + .fa-heart {
    font-weight: bold;
    background:  -webkit-linear-gradient(#9356dc, #FF79DA);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
代码语言:javascript
复制
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.2/css/all.css" integrity="sha384-vSIIfh2YWi9wW0r9iZe7RJPrKwp6bG+s9QZMoITbCckVJqGCCRhc+ccxNcdpHuYu" crossorigin="anonymous">
<label>
  <input type="checkbox">
  <i class="far fa-heart"></i>
</label>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66598098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档