直接在 HTML 标记中使用 SVG 不允许我将角色分配为按钮或具有所需的悬停效果
P粉940538947
P粉940538947 2023-09-06 20:29:59
[CSS3讨论组]

我有一个带有图标的容器,该图标应该执行两个功能:

  1. 具有按钮的作用(可通过键盘/屏幕阅读器等访问)
  2. 悬停/聚焦时变红

当我直接在标记中使用 SVG 时,悬停效果可以按预期工作,但我无法像使用 img 标签时那样为 SVG 分配按钮角色:

.container {
  height: 500px;
  width: 400px;
  background-color: lightblue;
  position: relative;
}

  .favourite-icon {
    position: absolute;
    top: 16px;
    right: 16px;
  }

  .favourite-icon:hover {
    fill: red;
  }

但是,当我使用 img 标签时,我可以通过 src 属性使用 SVG,为 img 分配按钮角色,但无法在悬停状态下达到预期结果(SVG 保存在其自己的文件并在 src) 中引用:

.container {
  height: 500px;
  width: 400px;
  background-color: lightblue;
  position: relative;
}

  .favourite-icon {
    position: absolute;
    top: 16px;
    right: 16px;
  }

  .favourite-icon:hover {
    fill: red;
  }

谁能给点建议吗?

P粉940538947
P粉940538947

全部回复(1)
P粉191323236

将 SVG 视为文档。当您将 HTML 文件包含在 中时,您无法编辑该框架中的 CSS。当您将其作为 img 而不是 SVG src 代码包含时,它会直接从 src 文档中提取该图像。

但是,CSS 过滤器 a> 允许我们直接在浏览器中应用一大堆很酷的 Photoshop 式效果。

img {
  max-width: 100%;
}
img:hover {
  filter: invert(0.5) sepia(1) hue-rotate(200deg) saturate(4) brightness(1);
}
<img src="https://upload.wikimedia.org/wikipedia/commons/0/02/Stack_Overflow_logo.svg">
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号