【问题标题】:linking hover event to 2 or more elements将悬停事件链接到 2 个或更多元素
【发布时间】:2014-10-22 07:55:59
【问题描述】:

您好,我想知道如何链接悬停事件来更改相关元素。例如,我想让它悬停在链接或图标上,它会同时改变它们的样式。现在在我的 sass/scss 我有 CSS:

.iconlinks {
    color:$linkscolor;

    &:hover {
        color:darken($linkscolor,20%);
    }
}      
#icons {
    a:hover {
        i {
           color: darken($primary-color, 20%);
        }
    }
}

HTML:

<div id="icons" class="row">
    <div class="medium-4 large-4 text-center column adjust">
        <a href="#"><i id="promotional" class="fi-calendar"></i></a>
        <h4><a class="iconlinks" href="#">text</a></h4>
        <p>Text ect</p>
    </div>
</div>

所以,我想将鼠标悬停在.iconlinks#icons 上会改变两者的样式。 我听说过使用像:before:after 这样的伪元素,但我还没有真正了解它们的用法以及它们是否适用。那么,实现这一目标的最佳方法是什么?

我也试过了:

        <div class="medium-4 large-4 text-center column adjust">
          <a class"dualhover" href="#"><i id="promotional" class="fi-calendar"></i>
        <h4><a class="iconlinks" href="#">Promotional Items</a></h4></a>

css:

.dualhover:hover{
#promotional{color: darken($linkscolor,10%);}
.iconlinks{
 color: darken($linkscolor,10%);
 }
 }

我的代码开始变得混乱,我需要清理一下。必须有一种更简单的方法来做到这一点。

【问题讨论】:

  • 嗯,我看过了,但它与我的问题有点不同,因为我在问你是否将鼠标悬停在特定元素上,它可能导致另一个元素做出反应,而该链接似乎解决了导致两个通过将鼠标悬停在具有两个孩子的父 div 上来做出反应的元素。让我添加 html。
  • 但是你的图标、链接、文本等都包裹在同一个div中。那么你可以像上面的例子那样将悬停样式应用到元素上吗?我不相信你可以让一个元素纯粹使用 CSS 来影响另一个不相关的元素。
  • 你能改变标记吗?将图标和标题包裹在链接中,然后您可以在 SCSS 中的 a:hover 块中访问它们

标签: html css sass pseudo-element


【解决方案1】:

如果您将鼠标悬停在 #icons,那么您将悬停整个区块(隐含地 .iconlinks)。所以你不必关心.iconlinks:hover状态:

#icons {
    .iconlinks {
        color:$linkscolor;
    }
    &:hover {
        .iconlinks {
            color:darken($linkscolor,20%);
        }
        a i {
            color: darken($primary-color, 20%);
        }
    }
}

【讨论】:

  • 问题是 #icons 也是一个 .row 并且包含的​​ div 是一个 4 宽的列。我假设最终版本有 3 个这样的块,因此将鼠标悬停在其中一个上也会在视觉上激活其他块。当然只是一个理论。
  • 可能,但我们仍然可以将#icons { 替换为#icons &gt; .column {
  • 没错,这可行!这个想法基本上就是为什么我问是否可以更改标记。使用足够具体的包装块,这应该可以正常工作。我只是认为链接本身而不是两个单独的链接会最有意义,以防它们指向同一事物。
  • 你是对的,它们足够接近,可能具有相同的目标,并且具有相同的行为。它们应该被合并。
  • 这是关闭的,并且使用 .column 子选择器关闭,但是当您将鼠标悬停在 div 列上时它仍会突出显示链接,但我希望它仅在您将鼠标悬停在图标本身或h4 .iconlink 本身
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
  • 2012-10-31
相关资源
最近更新 更多