【问题标题】:SCSS Change sibling color on hoverSCSS 在悬停时更改兄弟颜色
【发布时间】:2020-10-01 02:43:24
【问题描述】:

我有一个菜单,我想在悬停时更改链接颜色,但也将其所有兄弟姐妹更改为另一种颜色。没有JS可以吗?

HTML:

<ul>
    <li>
        <a>lorem</a>
    </li>
    <li>
        <a>ipsum</a>
    </li>
</ul>

SCSS:

ul {
    $primary-color: orange;

    > li {
        > a {
            color: #000;
            border-bottom: solid 2px transparent;

            &:hover {
                color: $primary-color;
                border-color: $primary-color;

                & + a:not(:hover) {
                    color: red;
                }
            }
        }
    }
}

【问题讨论】:

    标签: css sass menu hover siblings


    【解决方案1】:

    当一个a 标签悬停时,您不能影响其他标签。您唯一真正的选择是在悬停ul 时应用“其他”颜色,然后在悬停链接时覆盖“其他”颜色。

    ul > li > a {
      color: #000;
      border-bottom: solid 2px transparent;
    }
    ul > li > a:hover {
      color: orange;
      border-color: orange;
    }
    
    ul:hover a {
      color: red;
    }
    <ul>
        <li>
            <a>lorem</a>
        </li>
        <li>
            <a>ipsum</a>
        </li>
        <li>
            <a>sit</a>
        </li>
        <li>
            <a>amet</a>
        </li>
    </ul>

    SCSS 版本:https://codepen.io/3rror404/pen/OJMNyJg

    【讨论】:

    • 非常感谢,我没想到我可以只升一级..
    • 添加ul { width: max-content } 可能有助于在此处添加效果。但老实说,我会在这里使用 JavaScript 而不是 CSS。
    • @Daan 我刚刚添加了ul { display: inline-flex; }。但是感谢您的贡献,可能对某人有帮助:)
    猜你喜欢
    • 2012-09-16
    • 2018-01-17
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多