【问题标题】:pure CSS non sass, hover over one element and expand the others纯 CSS 非 sass,将鼠标悬停在一个元素上并展开其他元素
【发布时间】:2016-08-03 10:58:28
【问题描述】:

使用纯 CSS。没有SASS。我想知道当悬停在不同元素上时是否可以编写允许悬停效果(不同元素的大小略微扩大)的东西。

基本上是这样。将鼠标悬停在一个元素上,将展开另一个既不是子元素也不是父元素的 div 元素。我可以用纯 CSS 做到这一点吗?

【问题讨论】:

    标签: css css-transitions


    【解决方案1】:

    CSS 还不支持任何父选择器,所以无论如何这超出了范围。除了子选择器(您排除在外)之外,还有两个兄弟选择器 + 用于相邻的兄弟姐妹,~ 用于一般的兄弟姐妹。

    div {
      width: 100px;
      height: 100px;
      margin: 20px;
      display: inline-block;
      background: blue;
      vertical-align: top;
      transition: 1s all;
      box-sizing: border-box;
      text-align: center;
      padding: 20px;
      color: white;
    }
    
    div#one:hover + div#two {
      width: 200px;
    }
    
    div#one:hover ~ div#three {
      background: red;
    }
    <div id="one">Hover me!</div>
    <div id="two"></div>
    <div id="three"></div>

    注意:同级选择器仅按代码中出现的顺序起作用。因此,div#two ~ div#one不会影响第一个div

    【讨论】:

    • +1。我正要写同样的东西。操作注意事项:匹配 +~ 组合符左侧的元素必须位于 HTML 右侧的匹配项之前。
    • Aaand 你已经用简单的英语措辞了。更好!
    • 正要写:谢谢你的评论,我加了一个注释。 ;)
    猜你喜欢
    • 1970-01-01
    • 2013-02-05
    • 2012-07-15
    • 2015-02-02
    • 2022-01-05
    • 2012-10-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多