在CSS中选择其他li

时间:2015-02-28 13:49:29

标签: html css css-selectors

当我将鼠标放在li元素上时,我希望更改ul中其他li的不透明度。这可能只是用CSS(我正在使用SASS)?如果我不是李,那么所有的都是不透明的:1。

<ul>
    <li></li>  //opacity 0.5
    <li></li>  //opacity 0.5
    <li></li>  <= hover on this li //opacity 1
    <li></li>  //opacity 0.5
    <li></li>  //opacity 0.5
    <li></li>  //opacity 0.5
</ul>

4 个答案:

答案 0 :(得分:2)

/* The opacity when hovered. */
ul li {opacity: 1}

/* The opacity when the li is not hovered */
ul li:not(:hover) {opacity:0.5}

答案 1 :(得分:2)

诀窍是将所有项目的不透明度更改为ul:hover上的0.5和li:hover上的不透明度1。后者更具体,因此它适用于更普遍的一个。

&#13;
&#13;
ul:hover li {
  opacity: 0.5;
}

ul li:hover {
  opacity: 1;
}
&#13;
<ul>
    <li> opacity 0.5 </li>
    <li> opacity 0.5 </li>
    <li> hover on this li //opacity 1 </li>
    <li> opacity 0.5 </li>
    <li> opacity 0.5 </li>
    <li> opacity 0.5 </li>
</ul>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

这个简单的技巧应该这样做:

&#13;
&#13;
ul:hover > li{
  opacity: .5;
}

ul:hover > li:hover{
  opacity: 1;
}
&#13;
<ul>
    <li>1111</li> 
    <li>2222</li> 
    <li>3333</li> 
    <li>4444</li> 
    <li>5555</li> 
</ul>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

当您使用sass时,您可以使用在创建生成的CSS时将被解释的特定语法

ul 
{
&:hover
    {         
    li  {
        opacity: 1;             
        }
    }
li 
    {
    &:hover
        {
        opacity:0.5;
        }
     }
  }

一旦生成将成为

 ul:hover li {opacity: 0.5;}
 ul li:hover {opacity: 1;}