如何修改chrome账号密码自动填充的字体样式

项目场景:

  • 登录页面刷新输入框自动填入的账号和密码,实际字体大小与输入框设置的字体大小不同,点击输入框后字体又变成了设置的字体大小。

问题描述:

  • 在css样式中设置输入框字体大小为 font-size:20px ,在浏览器中也生效了,但是页面刷新字体的大小还是没有变化,仍为 14px16px ,但是鼠标点击输入框字体又会变成设置的字体大小 20px ,一开始我以为是 placeholder 提示的设置了 font-size 属性,但是查看表单中的输入框设置的 placeholder 是一个固定的字符串 placeholder="用户名" ,不会出现用户的账号和密码信息,所以应该不是 placeholder 导致的问题,网上查了发现是 chrome 的自动填充的默认样式造成现在这种现象。

账号密码自动填充账号和密码的文字大小如下所示:
自动填充账号和密码的文字大小
鼠标点击之后账号和密码的文字大小:
鼠标点击之后账号和密码的文字大小

html部分:

 <el-form
      ref="loginForm"
      :model="loginForm"
      :rules="loginRules"
      class="login-form"
      autocomplete="on"
      label-position="left"
    >
      <el-form-item prop="username">
        <span class="svg-container">
          <svg-icon icon-class="user" />
        </span>
        <el-input
          ref="username"
          v-model="loginForm.username"
          placeholder="用户名"
          name="username"
          type="text"
          tabindex="1"
          autocomplete="on"
        />
      </el-form-item>
      <el-tooltip
        v-model="capsTooltip"
        content="Caps lock is On"
        placement="right"
        manual
      >
        <el-form-item prop="password">
          <span class="svg-container">
            <svg-icon icon-class="password" />
          </span>
          <el-input
            :key="passwordType"
            ref="password"
            v-model="loginForm.password"
            :type="passwordType"
            placeholder="密码"
            name="password"
            tabindex="2"
            autocomplete="on"
            @keyup.native="checkCapslock"
            @blur="capsTooltip = false"
            @keyup.enter.native="handleLogin"
          />
          <span class="show-pwd" @click="showPwd">
            <svg-icon
              :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'"
            />
          </span>
        </el-form-item>
      </el-tooltip>
      <div class="login-btn centre3" @click="showlogin ? handleLogin() : ''">
        <div
          v-if="showlogin"
          style="
            color: #ffff;
            font-size: 26px;
            font-family: Source Han Sans CN;
            font-weight: 500;
          "
        >
          登 录
        </div>
        <div
          v-else
          style="
            color: #ffff;
            font-size: 26px;
            font-family: Source Han Sans CN;
            font-weight: 500;
          "
        >
          登录中<i class="el-icon-loading" />
        </div>
      </div>
    </el-form>

CSS部分:

.el-input {
    display: inline-block;
    height: 47px;
    width: 85%;

    input {
      background: transparent;
      border: 0px;
      -webkit-appearance: none;
      border-radius: 0px;
      padding: 12px 5px 12px 15px;
      color: $light_gray;
      height: 47px;
      caret-color: $cursor;
      font-size: 20px;
    }
  }

原因分析:

  • 给表单设置自动填充 autocomplete="on" 后,chrome会默认给自动填充的input表单加上 input:-webkit-autofill 私有属性。

解决方案:

1、设置 autocompleteoff,关闭自动填充功能。
2、通过 -webkit-autofill::first-line 设置填充文字样式,覆盖默认的样式。

  .el-input {
    display: inline-block;
    height: 47px;
    width: 85%;

    input {
      background: transparent;
      border: 0px;
      -webkit-appearance: none;
      border-radius: 0px;
      padding: 12px 5px 12px 15px;
      color: $light_gray;
      height: 47px;
      caret-color: $cursor;
      font-size: 20px;

      &:-webkit-autofill {
        transition: background-color 99999s ease-in-out 0s !important;
        -webkit-text-fill-color: $cursor !important;
      }
      // 自动填充文本样式
      &:-webkit-autofill::first-line {
        font-size: 20px;
      }
    }
  }
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值