lzc828 2024-02-29 16:38 采纳率: 0%
浏览 2

如何屏蔽在Android深色模式下浏览器自动对代码的修改?

在使用svg画图的时候发现如果字体使用的深色,
在移动端手机调整到深色模式时
Android自带的流量器会修改svg字体的颜色

正常情况下是这样的

img

在夜间模式下发现变成这个样子了

img

我的字体颜色是 #333333

svg 原图地址是 https://zz-plan.com/api/svg/6b12fb156a12fb5c70/

  • 写回答

3条回答 默认 最新

  • 关注

    lzc828 下午好🌅🌅🌅
    本答案参考通义千问

    **问题关键点:**如何在Android深色模式下保持浏览器内SVG字体颜色不变

    **答案:**要在Android深色模式下保持浏览器内SVG字体颜色不变,你需要确保你的SVG文件正确设置了颜色属性,并且不受系统默认主题更改的影响。以下是一些解决方案:

    1. 使用CSS样式: 在SVG中,你可以为文本元素添加CSS样式来指定颜色,而不是直接使用颜色名称。这样可以避免浏览器根据系统主题更改颜色。例如:

      <svg>
        <text fill="#333333">你的文本内容</text>
      </svg>
      

      在CSS中,你可以这样做:

      svg text {
        fill: #333333 !important; /* !important 用于确保优先级 */
      }
      
    2. 使用viewBoxcolor-profile: 如果你希望SVG在不同颜色背景下都能保持一致,可以设置viewBox属性,并使用color-profile来定义颜色空间。这有助于浏览器解析颜色值。

      <svg viewBox="0 0 100 100" preserveAspectRatio="xMidYMid meet" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" color-profile="http://www.w3.org/2005/10/sketch/patterns#svgart">
        <text fill="#333333">你的文本内容</text>
      </svg>
      
    3. **避免浏览器自动渲染:**某些浏览器可能会在深色模式下自动改变颜色,你可以尝试使用will-change CSS属性阻止这种行为:

      svg text {
        will-change: none; /* 阻止渲染变化 */
      }
      
    4. **使用Web字体(Web Font):**如果你的SVG字体是自定义字体,考虑使用Web字体,这样可以在不同的浏览器和系统主题下保持一致。

    5. **测试兼容性:**确保在各种设备和浏览器上进行测试,包括模拟不同的系统主题设置。

    解决方案总结:

    • 使用CSS样式指定颜色
    • 设置viewBoxcolor-profile
    • 阻止will-change渲染
    • 考虑使用Web字体
    • 全面兼容性测试
    评论

报告相同问题?

问题事件

  • 创建了问题 2月29日

悬赏问题

  • ¥15 求推荐发表需要付费的深度学习遥感场景分类SCI期刊
  • ¥15 无法在java控制台录入文字
  • ¥15 flutter网页应用用python的http服务器访问速度慢
  • ¥15 VESTA绘图原子颜色显示异常
  • ¥15 天翼云搭建多ip l2tp
  • ¥15 python实现CAD识图
  • ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
  • ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
  • ¥20 单细胞数据注释时报错
  • ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)