新闻中心

解决CSS Hover效果在Card组件中失效的问题

2025-10-19
浏览次数:
返回列表

解决css hover效果在card组件中失效的问题

本文旨在解决在将SVG hover效果集成到HTML card组件中时,hover效果失效的问题。通过分析问题代码,明确了失效原因在于z-index属性的设置。文章提供了修改方案,移除了`.center__div--heartFilled`的`z-index: -1`属性,从而使hover效果能够正常工作。同时,文章也展示了相关的HTML和CSS代码,方便读者理解和实践。

在开发Web应用时,经常会遇到需要在Card组件中添加交互效果的需求,例如,当鼠标悬停在Card的某个元素上时,改变其样式。本文将针对一种常见的问题进行详细讲解:当尝试在Card组件中集成SVG的hover效果时,效果可能无法正常工作。

问题分析

问题的核心在于,当SVG元素被放置在Card组件中,并且使用了z-index属性来控制元素的层叠顺序时,hover效果可能会失效。这通常是因为z-index属性的设置,导致鼠标事件无法正确地被SVG元素捕获。

解决方案

解决这个问题的方法是移除导致hover效果失效的z-index属性。具体来说,我们需要检查CSS代码中,哪个元素设置了z-index: -1,并将其移除。

在提供的代码中,问题的根源在于.center__div--heartFilled元素上可能存在的z-index: -1属性(虽然在提供的CSS代码中没有明确出现,但根据问题描述推测可能存在)。

具体步骤

  1. 检查CSS代码: 仔细检查与SVG元素相关的CSS代码,特别是.center__div--heartFilled这个类。
  2. 移除z-index: -1: 如果找到了z-index: -1的设置,直接将其删除。

修改后的CSS代码示例

AI Surge Cloud AI Surge Cloud

低代码数据分析平台,帮助企业快速交付深度数据

AI Surge Cloud 87 查看详情 AI Surge Cloud
.center__div--heartFilled {
  /* z-index: -1;  移除此行 */
}

完整代码示例

下面是完整的HTML和CSS代码,其中已经移除了可能导致问题的z-index属性:

HTML:

<div class="card restaurant__card">
  <a href="#">
    <div class="card__image">
      @@##@@
    </div>
    <div class="card__body">

      <div class="card__title">
        <h3>À la française</h3>
        <p>Cité Rouge</p>
      </div>

      <div class="card__heart">
        <div class="center__div center__div--heartFilled">
          <svg class="svg__heart--filled" width="29" height="29" viewBox="0 0 16 16">
            <defs>
              <linearGradient id="grad1" x1="0%" y1="100%" x2="50%" y2="0%">
                <stop offset="0%" class="color-primary" />
                <stop offset="100%" class="color-secondary" />
              </linearGradient>
            </defs>
            <path d="M8 1.314C12.438-3.248 23.534 4.735 8 15-7.534 4.736 3.562-3.248 8 1.314z" fill="url(#grad1)"></path>
          </svg>
        </div>

        <div class="center__div">
          <svg class="svg__heart--outline" width="30" height="30" fill="currentColor" viewBox="0 0 16 16">
            <path d="m8 2.748-.717-.737C5.6.281 2.514.878 1.4 3.053c-.523 1.023-.641 2.5.314 4.385.92 1.815 2.834 3.989 6.286 6.357 3.452-2.368 5.365-4.542 6.286-6.357.955-1.886.838-3.362.314-4.385C13.486.878 10.4.28 8.717 2.01L8 2.748zM8 15C-7.333 4.868 3.279-3.04 7.824 1.143c.06.055.119.112.176.171a3.12 3.12 0 0 1 .176-.17C12.72-3.042 23.333 4.867 8 15z" />
          </svg>
        </div>
      </div>
    </div>
  </a>
</div>

CSS:

body {
  background: black;
}

body a {
  text-decoration: none;
  color: black;
}

.card {
  width: 90%;
  height: 225px;
  margin-bottom: 25px;
  border-radius: 15px;
  overflow: hidden;
}

.card__image {
  height: 160px;
}

.card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card__body {
  height: 65px;
  width: 100%;
  display: flex;
  align-items: center;
  flex-flow: row wrap;
  justify-content: space-between;
  background: white;
}

.card__title {
  padding-left: 15px;
  display: flex;
  flex-flow: column wrap;
  gap: 3px;
}

.card__title h3 {
  margin-top: 0px;
  margin-bottom: 0px;
}

.card__title p {
  margin-top: 0px;
  margin-bottom: 0px;
}

.card__heart {
  margin-right: 40px;
  border: solid black 1px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 32px;
  height: 32px;
}


/* styliser les svg heart */

.center__div {
  width: 32px;
  height: 32px;
  position: absolute;
  cursor: pointer;
}

.center__div--heartFilled {
  /* z-index: -1;  移除此行 */
}

.svg__heart--filled {
  opacity: 0;
  transition: all 500ms ease-in-out;
}

.card__heart:hover .svg__heart--filled {
  opacity: 1;
}


/*.
.svg__heart--filled {
  opacity: 1;
}
*/

.svg__heart--outline {
  background: rgba(0, 0, 0, 0);
}

.color-primary {
  stop-color: yellow;
  stop-opacity: 1;
}

.color-secondary {
  stop-color: red;
  stop-opacity: 1;
}

注意事项

  • 确保在移除z-index属性后,SVG元素的层叠顺序仍然符合预期。如果需要调整层叠顺序,可以尝试使用其他的CSS属性,例如position和transform。
  • 在复杂的布局中,可能存在其他的CSS属性导致hover效果失效。需要仔细检查代码,并逐步排除问题。

总结

通过移除.center__div--heartFilled元素上的z-index: -1属性,可以解决SVG hover效果在Card组件中失效的问题。在实际开发中,需要仔细分析问题代码,并根据具体情况进行调整。理解CSS的层叠上下文和事件冒泡机制,有助于更好地解决类似的问题。

解决CSS Hover效果在Card组件中失效的问题

以上就是解决CSS Hover效果在Card组件中失效的问题的详细内容,更多请关注其它相关文章!


# 显示效果  # 株洲营销网络推广seo排名优化  # 宁波市外贸网站推广优化  # 天津靠谱营销推广  # 北京论坛发帖推广营销  # 云南seo推广哪里好  # 娱乐网站设计SEO  # 营销及其推广策略  # 经济学关键词排名软件  # 广告优化seo sem培训  # seo中图片文字  # 中文网  # 相关文章  # 将其  # 是因为  # css  # 其他的  # 单选框  # 鼠标  # 表单  # 移除  # red  # overflow  # .net  # css属性  # ai  # 事件冒泡  # svg  # html 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 动漫岛观看全网网 动漫岛在线正版动漫入口  Win11网速慢怎么解决 Win11网络设置优化解除限速  理解Python模块与全局变量的作用域管理  蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址  AO3镜像入口大全 AO3网页版内容访问全集  J*aScript中高效管理与清空动态列表:避免循环陷阱  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  如何在网页中实现特定地点的随机图片展示  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  如何设置Windows Defender的定时扫描_计划任务实现自动杀毒【安全】  高德地图公交到站提醒失败如何解决 高德提醒权限设置  AO3官方镜像站点汇总 AO3同人作品网页版直达链接  Bing引擎入口最新2025 Bing搜索免费官方登录  AO3网页版合集入口 Archive of Our Own同人作品浏览指南  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  解决Tabulator日期时间排序问题的专业指南  R星幕后开发视频泄露 包含《GTA6》等多款大作  我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口  J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程  极兔快递快件信息查询系统 极兔快递官网运单号追踪  印象笔记如何设离线包出差查阅_印象笔记设离线包出差查阅【离线阅读】  单12V-2&#215;6实现为RTX 5090供电750W!甚至都没敢跑分  顺丰快递查询系统 官方正版查询入口  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  谷歌推RCS信息存档功能:公司可监控员工私密信息!  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能  没有大陆身份证/银行卡如何实名微信? 亲测有效的几种方法分享  mysql备份恢复性能优化_mysql备份恢复性能优化方法  汽水音乐在线版入口_汽水音乐网页播放手册  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  《GTA6》开发画面疑似泄露!这次可不是AI了  Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换  HTML5原生日期选择器与jQuery UI:实现日期选择器的联动与程序化控制  C#中解析不规范的HTML为XML 常见的坑与解决办法  解决移动端滚动问题的overflow属性应用指南  Centos/Linux 系统下安装 composer 的完整步骤  C++指针和引用有什么区别_C++内存管理核心概念深度解析  Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持  处理嵌套交互式控件:前端可访问性指南  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  Yandex搜索引擎官方地址 俄罗斯网络世界的主要入口  漫蛙2漫画入口 漫蛙正版网页漫画直达网址  海棠账号登录入口_登录海棠账户同步阅读记录  2025AO3夸克浏览器通道_AO3手机HTTPS安全入口分享  Lar*el Form Request中唯一性验证在更新操作中的正确实现  css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异  如何在CSS中使用visited与link控制链接颜色_visited link伪类配合  Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法 

搜索