如何在悬停子元素时更改父元素的颜色

2023-12-08

我有一个带有社交链接的 div,当悬停任何具有不同颜色的锚点时,我想使背景颜色填充整个 div,具体取决于悬停的链接。

目前,背景仅在锚文本下方发生变化。

我正在研究使用纯 CSS 为整个父级填充子级背景颜色的方法。

#social {
    width: 400px;
    height: 300px;
    position: relative;
    font-size: 36px;
    font-weight: bold;
    text-align: center;
}
a:link {
    text-decoration: none;
    transition: all .5s ease;
}
a:hover {
    color: white;
}
#facebook:hover {
    background: #3b5998;
}
#twitter:hover {
    background: lightblue;
}
#google-plus:hover {
    background: tomato;
}
#instagram:hover {
    background: lightgreen;
}
<div id="social">
               <a id="facebook" href="#"> <span>Facebook</span></a><br>
                <a id="twitter" href="#"> <span>Twitter</span></a><br>
                <a id="google-plus" href="#"> <span>Google plus</span></a><br>
                <a id="instagram" href="#"> <span>Instagram</span></a><br>
</div>

乍一看,这似乎是另一种改变父元素样式的尝试,但有一种方法可以使用纯 CSS 来实现效果。

方法是使用::after锚元素的伪选择器。我们需要将其定义为绝对定位并设置为父级的 100% 尺寸。另外为了防止兄弟姐妹重叠,我们需要减少z-index伪选择器的属性将其呈现在文本下方。

这是一个片段:

#social {
    width: 400px;
    height: 300px;
    position: relative;
    font-size: 36px;
    font-weight: bold;
    text-align: center;
}
a::after{
    content: " ";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    border-radius: 20px;
    background: transparent;
    transition: background .5s ease;
}
a:link {
    text-decoration: none;
    transition: color .5s ease;
}
a:hover {
    color: white;
}
#facebook:hover::after {
    background: #3b5998;
}
#twitter:hover::after {
    background: lightblue;
}
#google-plus:hover::after {
    background: tomato;
}
#instagram:hover::after {
    background: lightgreen;
}
<div id="social">
               <a id="facebook" href="#"> <span>Facebook</span></a><br>
                <a id="twitter" href="#"> <span>Twitter</span></a><br>
                <a id="google-plus" href="#"> <span>Google plus</span></a><br>
                <a id="instagram" href="#"> <span>Instagram</span></a><br>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在悬停子元素时更改父元素的颜色 的相关文章

随机推荐

  • 有谁知道如何修复此错误以将 Findbugs 安装到 Netbeans 8.2 中?

    将 Findbugs 安装到 Netbeans 8 2 时出现以下错误 There were some problems while storing Establishing a connection Cause Cannot resolv
  • 列出 Pub/Sub 订阅使用者

    服务可以对发布 订阅订阅进行长轮询 这显然需要在 pub sub 服务和客户端之间不断打开 TCP 连接 有什么方法可以查明某个订阅是否打开了该 TCP 连接吗 没有办法列出 Pub Sub 订阅的所有消费者 不 这会很困难 因为存在三种不
  • SQL Server 2005 某些数据库对象的搜索视图

    SQL Server 中有没有一种方法可以列出数据库中从特定对象连接的所有视图 即 查找从表 myTable 加入的所有视图 您可以使用sys sql dependencies select object name object id fr
  • 我可以通过基类类型的引用访问子类方法吗?

    下面是我正在尝试处理但无法解决问题的代码片段 我真的可以用 Java 执行以下操作吗 如果是 请帮助了解我 如何 如果不是 为什么 看看下面的代码 class Base public void func System out println
  • 使用正则表达式替换 CSV 中引号之间的逗号

    例如 我们有一个像这样的字符串 COURSE 247 28 4 2016 12 53 Europe Brussels 1 Verschil tussen merk product en leveranciersverantwoordelij
  • 没有焦点的按键事件

    我正在编写一个简单的 GUI 它将在特定点打开一个 opencv 窗口 这个窗口有一些非常基本的 keyEvents 来控制它 我想通过一些功能来推进这一点 由于我的 QtGui 是我的控制器 因此我认为使用 KeyPressedEvent
  • 闪亮的应用程序:保持面板在多个视图中保持一致

    在 Shiny 中 我想保持一些面板 下面的面板 1 在多个视图 下面的绘图视图 1 和 2 中保持一致 下面我可以在 Plotview2 中显示 panel1 但是 该面板在此视图中不起作用 目标是能够通过多个 绘图视图 拥有一些一致的
  • 我对值初始化的尝试被解释为函数声明,为什么 A a(()); 不被解释为函数声明?解决这个问题?

    Stack Overflow 教给我的许多东西中 有一个就是所谓的 最令人烦恼的解析 它通常用这样的行来演示 A a B declares a function 虽然对于大多数人来说 直观上这似乎是一个对象的声明a类型的A 暂时采取B对象作
  • 无法删除 docker 镜像

    在设置新的构建机器 CentOS 7 Docker CE 17 12 0 ce 时 我做了一个简单的测试 docker run it rm ubuntu bash 效果很好 但现在我无法删除 Ubuntu 映像 build docker i
  • 在 Spark 中迭代每一列并找到最大长度

    我是 Spark scala 的新手 我有以下情况 我在集群上有一个表 TEST TABLE 可以是配置单元表 我正在将其转换为数据框 作为 scala gt val testDF spark sql select from TEST TA
  • 使用向量代替循环

    我有一个巨大的矩阵 我刚刚给出了一个具有大小的矩阵的示例 1 1000000 我正在使用简单Loop 我不喜欢使用Loop 来找到k where k k ii abs a ii 1 2 a ii a ii 1 a ii 1 2 a ii a
  • GridLayout 和行/列跨度问题

    The Android 开发者博客文章介绍GridLayout显示了跨度如何影响自动索引分配的图表 我正在尝试使用GridLayout 这是我到目前为止所拥有的
  • MySQL、utf8_general_ci 和西里尔字符

    MySQL 版本 4 1 及其排序规则 utf8 general ci 似乎不喜欢特定的西里尔字符 和 适用于 MySQL 5 0 及以上版本 由于该字段用于存储俄语以外的语言 英语 爱沙尼亚语 德语 的信息 因此更改排序规则的类型是不可想
  • 在 AWS IOT 中调用 getShadow/updateShadow 时出现 ForbiddenError 403

    我有带有联合 ID 的经过身份验证的用户 但是当我尝试访问 AWS IOT 内容时 我收到了这个错误 这让我发疯 我正在关注iot sample code 所有相关凭证也都是正确的 MQTTHelper credentialsProvide
  • 重定向子进程的输出

    有多种方法可以重定向子进程的输出 using freopen 3 using dup 3 using popen 3 如果需要的话 应该选择什么是执行子进程并将其输出保存在给定文件中 非常类似于ls gt files txt works s
  • 在多页中获取 Activecontrol

    我正在尝试获取该名称Listbox我刚刚选择的 ListBox1 Caveat ListBox1位于Multipage1 在第一个选项卡上 Private Sub ListBox1 Click Dim m As String m Me Ac
  • 在 Ubuntu 14.04 上的 Python 2.6 上安装 M2Crypto 0.20.1

    我需要在 Ubuntu 14 04 上从 Python 2 6 的源代码编译并安装 M2Crypto 0 20 1 我现在无法迁移到 Python2 7 但我们正在计划这样做 我安装了Python2 6https launchpad net
  • 使用 Sass 定制引导程序;我到底应该在我的 scss 文件中导入 bootstrap 吗?

    在尝试使用 Sass 自定义引导程序时 我注意到覆盖默认引导程序变量似乎以一种不连贯的方式工作 并且希望有人可以解释到底发生了什么导致这种行为 某些变量似乎只有在导入 bootstrap 之前声明时才会被覆盖 其他变量似乎只有在导入 boo
  • 当密钥未翻译时使用默认语言后备

    我可以使用默认语言 例如英语 作为其他语言的 Localized strings 文件中的未翻译键吗 为此 您可以使用英文单词作为 Localized strings 文件中的键 另一种方法是检查 NSLocalizedString 的结果
  • 如何在悬停子元素时更改父元素的颜色

    我有一个带有社交链接的 div 当悬停任何具有不同颜色的锚点时 我想使背景颜色填充整个 div 具体取决于悬停的链接 目前 背景仅在锚文本下方发生变化 我正在研究使用纯 CSS 为整个父级填充子级背景颜色的方法 social width 4