【问题标题】:Change text color if checkbox is disabled [duplicate]如果复选框被禁用,则更改文本颜色[重复]
【发布时间】:2019-10-27 07:13:03
【问题描述】:

如果复选框被禁用,我如何更改此复选框的标签颜色,将文本颜色更改为红色,如果它没有更改为绿色。

这是我的代码:

<?php
if ($timelists[]='09:00:00'){
?>
<div class="checkbox checkbox-success checkbox-info text-danger">
<input id="checkbox-15" type="checkbox" name="timelist[]"value="09:00:00" <?php echo (in_array("09:00:00", $timelists)?"disabled='disabled'":"") ?>>
<label for="checkbox-15">
09:00 AM - 10:00 AM (ALREADY SCHEDULED)
</label>
</div>
<?php
}
else{
?>
<div class="checkbox checkbox-success checkbox-info text-success">
<input id="checkbox-15" type="checkbox" name="timelist[]"value="09:00:00" <?php echo (in_array("09:00:00", $timelists)?"disabled='disabled'":"") ?>>
<label for="checkbox-15">
09:00 AM - 10:00 AM (AVAILABLE)
</label>
</div>
<?php
}
?>

在这种情况下,复选框被禁用并且标签颜色为红色'text-danger'我得到相同的输出,当没有禁用并且应该是标签颜色为绿色'text-success'

【问题讨论】:

  • if ($timelists[]='09:00:00')
  • @Jeto 我有一个值数组。如果值 '09:00:00' 在数组中,我想让标签颜色变为红色,它已经被禁用。
  • @Elekpato 然而,这是无效的 PHP。你应该使用in_array
  • 哦,我明白了。我是 PHP 新手。

标签: php html checkbox


【解决方案1】:

由于标签紧跟在复选框之后,您可以利用标准 CSS 中可用的简单规则。 在这种情况下,adjacent sibling selector 可以通过使用+ 定义样式来使用

所以:

:disabled + label{ /* styles for label... */ }

label { color: green; } /* how the labels will look normally */

input[type="checkbox"]:disabled+label {
  color: red!important
} /* labels for checkboxes that are disabled */

input[type="checkbox"]:disabled + label:after{ content:"( ALREADY SCHEDULED )" }
<div class="checkbox checkbox-success checkbox-info text-danger">
	<input id="checkbox-15" type="checkbox" name="timelist[]" value="09:00:00" disabled />
	<label for="checkbox-15">09:00 AM - 10:00 AM</label>
</div>

<div class="checkbox checkbox-success checkbox-info text-danger">
	<input id="checkbox-16" type="checkbox" name="timelist[]" value="10:00:00" />
	<label for="checkbox-16">10:00 AM - 11:00 AM</label>
</div>
label{color:green;}
label:after{content:"( AVAILABLE )"}
input[type="checkbox"]:disabled + label{color:red!important}
input[type="checkbox"]:disabled + label:after{content:"( ALREADY SCHEDULED )"}

【讨论】:

  • 哦。谢谢!拯救我的一天。还有一件事,我如何在其中添加一些文本,例如,如果禁用将一些文本添加到标签中(ALREADY SCHEDULED)
  • 再一次,使用:after注册内容的CSS~看上面修改的css
  • label:after { content: "AVAILABLE"; color: green; } input[type="checkbox"]:disabled+label { color: red!important } 即使它被禁用,它也会显示在所有复选框中。
  • ?你什么意思?
  • 我有多个复选框。有些被禁用。我想在标签中添加一些文本取决于它是否被禁用。如何做到这一点?我试过了:之后。
猜你喜欢
  • 2017-01-08
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多