任何人都可以帮助我使用此代码,以便在选中复选框时,文本也具有删除线吗?

我可以使删除线起作用,也可以使CSS样式起作用,但是我不能同时使它们起作用:(

我试图将下面的代码与链接中的代码结合起来,但是我无法弄清楚我在做什么错。
CSS checkbox strikethrough Demo



/* Customize the label (the container) */
.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;
}

/* Hide the browser's default checkbox */
.container input {
  position: absolute;
  opacity: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
}

/* On mouse-over, add a grey background color */
.container:hover input ~ .checkmark {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.container input:checked ~ .checkmark {
  background-color: #2196F3;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.container input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.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">Two
  <input type="checkbox">
  <span class="checkmark"></span>
</label>

最佳答案

您可以简单地将伪元素::before::aftertext-decoration: line-through一起使用



/* Customize the label (the container) */

.container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 22px;
}

/* Hide the browser's default checkbox */
.container input {
  display: none
}
/* Create a custom checkbox - using ::before */
.checkmark::before {
  content: "";
  height: 25px;
  width: 25px;
  background-color: #eee;
  position: absolute;
  left:0;
  top:0;
}
/* On mouse-over, add a grey background color */
.container:hover input~.checkmark::before {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.container input:checked~.checkmark::before {
  background-color: #2196F3;
}

/* Show the checkmark when checked */
.container input:checked~.checkmark:after {
  display: block;
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
  content: "";
  position: absolute;
}

/* strike throught the text */
.container input:checked~.checkmark {
  text-decoration: line-through
}

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

关于html - 选中复选框时删除线文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47424453/

10-09 22:23