带有“已检查”技巧的 CSS 过渡 [重复]

Posted

技术标签:

【中文标题】带有“已检查”技巧的 CSS 过渡 [重复]【英文标题】:CSS transitions with the "checked" hack [duplicate] 【发布时间】:2016-04-09 23:41:43 【问题描述】:

我正在尝试通过使用“checked”hack 对这个示例做类似的事情

input[type=checkbox]:checked ~ label .box  
  opacity:0;
  -webkit-transform   :scale(0) rotate(-180deg);
  -moz-transform      :scale(0) rotate(-180deg);
  transform           :scale(0) rotate(-180deg);

http://codepen.io/anon/pen/KVWWjy

但是,我需要更改 html 代码,使 label 标签位于 input 标签之前。当我在底部移动输入时,效果停止工作。我该如何解决这个问题?

【问题讨论】:

我什至不知道前一个兄弟是什么但好吧...... 好吧,可惜他们关闭了它。我有你的答案 @LOTUSMS 可以发给我吗? 不知道我们可以在这里 PM 哈哈。私信我,我会回复...我猜你每天都会学到新东西 我的错。估计做不到 【参考方案1】:

CSS 中没有 previous sibling 选择器。如果有,CSS 会慢很多。关于这个问题已经有很多争论,而且在可预见的未来都不会发生。

正如chowey 说得好:

CSS 选择器被设计为易于(快速)为浏览器实现。文档可以被遍历一次,在你去的时候匹配元素,而无需向后调整匹配

简单地说,您必须更改您的标记。你不能让 CSS 向后看。它只是向前看。

有关该主题的更多信息,请参阅this question。

【讨论】:

【参考方案2】:

对于css,这是不可能的,因为您无法向上遍历,您使用的选择器只会查看它向后工作的下一个兄弟姐妹。为此,您必须使用javascript

【讨论】:

以上是关于带有“已检查”技巧的 CSS 过渡 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

CSS过渡不反向工作[重复]

具有线性渐变的CSS过渡[重复]

Css过渡悬停渐变[重复]

css一次过渡到多个元素[重复]

使用css3显示/隐藏元素的css过渡效果[重复]

CSS3 过渡不适用于显示属性 [重复]