如何应用连续类中的 CSS 样式
P粉447785031
P粉447785031 2024-04-02 22:44:36
0
1
323

.checked 类存在时,我需要插入 text-decoration: line-through; 样式到 .todo-name

(我一直不明白是否可以用 css 来实现,但万一我也可以使用 js 作为最后的机会)

<label class="checkbox-container" for="0"><span class="todo-name">Todo</span>
    <input onclick="updateStatus(this)" type="checkbox" id="0" checked="">
    <span class="checkmark checked"></span>
</label>

<!--This content does not have .checked and should not change-->
<label class="checkbox-container" for="0"><span class="todo-name">Todo</span>
    <input onclick="updateStatus(this)" type="checkbox" id="0">
    <span class="checkmark"></span>
</label>

<style>
/*.todo-name{text-decoration: line-through;}*/


/*Not working*/
/*
.checkbox-container .checked ~ .todo-name {
  text-decoration: line-through;
}
.checkbox-container:not(.checked) .todo-name {text-decoration: line-through;}
*/
</style>

Codepen项目

最终结果应该是这样的

P粉447785031
P粉447785031

全部回复(1)
P粉545682500

您遇到了几个问题。正如评论中提到的,如果您不想使用 JavaScript,则应该使用伪类。 :在本例中检查了

接下来,您将使用 CSS 选择器 ~,它选择该元素之后而不是之前的同级元素。因此,尝试使用选择器 #0:checked ~ .todo-name 选择 .todo-name 将不起作用,因为名称出现在复选框之前。

下面是一个工作版本的示例。

input:checked ~ .todo-name {
    text-decoration: line-through;  
}


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!