看了一篇文章 关于实现纯CSS实现内容过滤
其中不太理解
input[type="radio"]{
&[id="men"]:checked {
* label {
background:#6666ff;
}
~ .women,
~ .children {
width:0;
height:0;
padding:0;
margin:0;
opacity:0;
}
}
&[id="women"]:checked {
* label {
background:#ff4466;
}
~ .men,
~ .children {
width:0;
height:0;
padding:0;
margin:0;
opacity:0;
}
}
想请问里面的~ 还有 * 是什么意思 ?
非常感谢
原文地址
http://www.w3cplus.com/css3/pure-css-content-filter.html
你可以参考一下原文中给出的关于css3通用兄弟元素选择器的文章http://www.w3cplus.com/css3/basic-selectors,通用兄弟元素选择器是CSS3新增加一种选择器,这种选择器将选择某元素后面的所有兄弟元素,他们也和相邻兄弟元素类似,需要在同一个父元素之中,换句话说,E和F元素是属于同一父元素之内,并且F元素在E元素之后,那么E ~ F 选择器将选择中所有E元素后面的F元素。
回到原文内容中的html代码结构
再结合其css代码
意思就是选择选中.container类下与men类同级的women和children类,*表示所有的label元素被选中