如何解决 chrome 自动完成与 vuetify 中标签重叠的问题?

2024-03-14

当尝试使用以下命令创建登录表单时outlinedVutify 中的文本字段,chrome 自动完成功能与labels,

<v-text-field
  v-model="email"
  label="e-mail"
  name="email"
  outlined
  prepend-icon="mdi-account"
  type="text"
  required
>
</v-text-field>

你可以重生here https://codepen.io/prajin-tst/pen/NWNWvBZ请填写并提交,然后返回。


这就是我解决这个问题的方法。

看来我们的主要问题如下:

  • Chrome 的自动填充在加载页面时不会使界面做出反应,让设计就像您的图像一样。
  • 因此,在注入时,我们应该自己进行修复,但 Chrome 中没有任何事件可以通知我们何时自动填充登录名/密码。

有趣的是,从浏览器窗口中的任何点击“FROM USER”都会自动通知反应性,并且一切都再次正常工作,但它不适用于“FROM 触发器/调度”内部方式。

因此,首先,我们需要找到一种在登录/密码自动填充后做出反应的方法。 其次,我们需要自行修复设计,因为只有 FROM USER 操作才能使设计再次正常工作。

1.加载页面自动填充后的反应

  • 就像哈克尼斯提到的那样,我们可以尝试检查一下:-webkit-autofill在安装代码后 X 秒定期查看是否注入了自动填充(根据我的测试,Chrome/Firefox/Edge 工作正常)
  • 另一种解决方案是使用animationstart事件(参见此处:https://github.com/material-components/material-components-web/issues/4447#issuecomment-580401216 https://github.com/material-components/material-components-web/issues/4447#issuecomment-580401216)

我使用第一个解决方案:

export default {
  //...
  data() {
    return {
      //...
      autofillFix: false,
    }
  },
  //...
  mounted() {
    this.autoLoginCheckingInterface()
  },
  //...
  autoLoginCheckingInterface() {
    // each 100ms we check if the issue was produced
    let intervalDetectAutofill = setInterval(() => {
      if (
        // we target at least one of the stuff that will be affected by autofill
        // to do our checking
        document.querySelectorAll('input[type="password"]:-webkit-autofill')
          .length > 0
      ) {
        // and we inform the system about the issue if it is produced
        this.autofillFix = true

        // we stop to check if issue was produced
        clearInterval(intervalDetectAutofill)
      }
    }, 100)

    // if after 3s nothing appear, means no autofill was made
    setTimeout(() => {
      if (intervalDetectAutofill) {
        clearInterval(intervalDetectAutofill)
        intervalDetectAutofill = null
      }
    }, 3000)
  },
  //...
}
<!--
we will inject `.autofill-fix` class to be able fix design ourself at time of this bug occur
--> 
<v-text-field
      ...
      :class="{ 'autofill-fix': autofillFix }"
      ...
      label="Email address or username"
      ...
      dense
      outlined
      @focus="autofillFix = false"
/>
<!--
we use @focus to let the normal behavior take again the lead
because we know this USER ACTION will made Chrome work well again
-->
<v-text-field
      ...
      :class="{ 'autofill-fix': autofillFix }"
      ...
      label="Password"
      type="password"
      ...
      dense
      outlined
      @focus="autofillFix = false"
/>

2. 自行修复设计

我们可以看到什么时候发生了变化v-text-field充满。没有内容,我们可以看到:

自动填充后,我们可以看到:

所以从红色部分我们可以看到此时需要注入如下代码 的.autofill-fix存在以正确的方式修复设计

.autofill-fix.v-text-field--outlined.v-input--dense .v-label {
  left: -28px!important;
  transform: translateY(-16px) scale(.75);
}

注意:如果不使用,则需要更改 CSS 选择器outlined or dense。注意选择器的特殊性https://specificity.keegan.st/ https://specificity.keegan.st/。事实上,您需要根据您的设计调整固定的更改

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决 chrome 自动完成与 vuetify 中标签重叠的问题? 的相关文章

随机推荐

  • DCPCrypt/Delphi 未正确编码 Rijndael

    我有 DCPCrypt 包 最新版本 并尝试在 Delphi2007 中使用来自 NIST 分发的 AES 已知答案测试 KAT 向量的测试值进行 AES Rijndael CBC 编码 128 位块 256 位密钥 一个样本测试向量 KE
  • 具有符合协议的惰性、私有属性的 Swift Struct

    首先 我有一个仅定义一些只读属性的协议 例如 protocol Example var var1 String get var varArray String get 然后我想创建一个符合该协议的结构 我遇到的问题是我有两个相互冲突的要求
  • Firestore 查询具有多个值的循环

    我正在尝试使用字符串中保存的数据检索多个 Firestore 文档 这个想法是 对于数组中的每个值 我将使用 Firestore 查询来检索与该查询匹配的文档并将其推送到另一个数组 我在实现此目标时遇到了一些问题 到目前为止我已经尝试过 e
  • “Microsoft VBScript 运行时错误‘800a000d’‘800a000d’

    我有下一个代码 其工作原理如下 从url接收一些参数 将此数据插入名为 clients 的表中 然后我选择客户表中最后引入的数据 最后 它尝试将此数据插入到另一个名为 users 的表中 但我收到这个错误 Microsoft VBScrip
  • 在 jQuery.load() 上对容器的高度进行动画处理

    我正在使用 container div load url 通过 ajax 填充 div 我想将高度设置为返回内容的高度 但真的不知道如何实现这一点 我尝试过使用这样的东西 main fadeOut function main load ur
  • 由于文件 libmpi.so.1 丢失而出错

    我使用 Omnet 和 Veins 进行模拟 直到我昨晚从 Ubuntu 15 升级到 16 04 LTS 之前它都工作正常 现在 我在尝试运行模拟时收到以下错误 error while loading shared libraries l
  • 语音识别监听器在 Galaxy SII 中不起作用

    我正在开发一个Android应用程序 它总是监听用户的声音 当我在 Sony X10i 上运行时它可以工作 但在 Samsung Galaxy SII 上则不起作用 这是我的代码 SpeechRecognizer speechRecogni
  • Android比较imageView和image

    我想将当前 imageView 与 R drawable 中的图像进行比较 我想我已经尝试了一切 但我无法解决这个问题 我尝试了堆栈溢出的所有方法 XML
  • npm 安装失败,出现 make not found 错误

    当我尝试在 Nodejs 服务器上安装时间时 出现以下错误 email protected cdn cgi l email protection install var www track node modules time node gy
  • 如何使用 OpenGL ES 2.0 着色器完成这些图像处理任务?

    如何使用 OpenGL ES 2 0 着色器执行以下图像处理任务 色彩空间变换 RGB YUV HSL Lab 图像的旋转 转换为草图 转换为油画 我刚刚向我的开源添加了过滤器GPU图像框架 https github com BradLar
  • 为什么HashMap比HashSet快?

    我一直在阅读 研究原因HashMap比HashSet 我不太明白以下说法 HashMap比HashSet因为这些值与唯一的键相关联 In HashSet 成员对象用于计算两个对象的哈希码值可以相同 因此equals 方法用于检查相等性 如果
  • Windows 驱动程序时间戳函数

    我正在修改现有的 Windows 内核设备驱动程序 并且需要在其中捕获时间戳 我打算使用 time h 库并调用 Clock 函数来实现这一点 但是在 Windows Visual Studio 下 链接失败 所以我把它作为我需要在驱动程序
  • 应用于浮动操作按钮的 Alpha 会创建奇怪的圆圈?

    在我的应用程序中 我使用材料设计浮动操作按钮 每当我将按钮的 backgroundTintColor 属性更改为 alpha 低于 255 的值时 它就会在按钮内创建这个奇怪的圆圈 我已经用我的 xml 代码提供了下面按钮的图片 任何帮助将
  • 存储人类可读的 UUID 的最小方式是什么?

    存储人类可读且与数据库广泛兼容的 UUID 的最小方式是什么 我正在考虑使用十六进制值的某种字符数组 作为常见的方法 我认为将二进制数据 16 字节 编码为 Base64 可能是您想要的
  • 如何选择帖子的最后编辑版本?

    我有一个像SO这样的问答网站 我还有一个表格 其中包含问题和答案及其编辑版本 这是我的表结构 QandA id title body related type edited id 1 title1 question content NULL
  • 为什么在此示例中使用 tmp_name

    我对 php 很陌生 我正在查看一个关于文件上传的示例 在里面getimagesize 功能 FILES file temp name 当我回显 FILES file temp name 时 它显示以下输出 C xampp tmp phpD
  • 我应该如何在 ffmpeg 中使用破折号(不是 webm_dash_manifest!)格式?

    FFmpeg 有一种名为 dash 的格式 gt ffmpeg formats E dash DASH Muxer 这大概对应于 libavformat dashenc c 中的代码 我可以在网络上找到许多有关如何使用 WebM DASH
  • WPF 图像滚动器 - 寻找行为类似于图像的控件

    在 WPF 中 实现如下图所示的控件的最佳方法是什么 你有很多图像 并不是所有的图像都能立即看到 但你可以向右和向左进行一些分页 或者滚动 我不知道如何称呼它 侧面的两个按钮左右滚动并带来新图像 如果需要滚动图像 则可以使用简单的 List
  • 不使用 Anaconda 的 Spyder 安装

    我已经在 Windows 7 上安装了 Python 3 6 32 位 有没有办法在不下载 Anaconda WinPython 等的情况下安装 Spyder 您需要运行以下命令才能安装并运行Spyder3没有蟒蛇 1 python m p
  • 如何解决 chrome 自动完成与 vuetify 中标签重叠的问题?

    当尝试使用以下命令创建登录表单时outlinedVutify 中的文本字段 chrome 自动完成功能与labels