Поле ввода становится маленьким при наборе текста только в Chrome на Mac (возможно, проблема с CSS-Grid)

Я создал веб-сайт, на котором у меня есть поля ввода, которые становятся очень маленькими, когда я начинаю что-то печатать. Но такое поведение проявляется только в Chrome на Mac (текущая версия 63). Тот же веб-сайт в Safari или Chrome в Windows этого не показывает, и я понятия не имею, что происходит.

Вот два скриншота: введите здесь описание изображения введите здесь описание изображения

Я точно определил, что проблема вызвана моей попыткой заполнить столбец сетки css полем ввода. Вы можете увидеть это в коде (S)CSS, где я пытался добиться этого с помощью одного из следующих вариантов:

// All these 3 options get me to the same bug:
justify-items: stretch;

// Same with this option:
input {
  width: 100%;
}

// Or this one:
input {
  justify-self: stretch;
}

Вот более-менее минимальная версия проблемы. Я также создал скрипку, но ошибка не отображается на скрипке с Chrome на Mac:/

Скрипка

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="css/style.css">
</head>
<body>
  <div id="showcase" class="grid">
      <!-- OTHER STUFF I ARRANGE WITH GRID -->
      <form action="#" class="grid">
        <input type="text" name="name" placeholder="Name">
      </form>
  </div>
</body>
</html>

СКСС:

input {
  border: 0px;
  font-size: 15px;
  padding: 1.4em;
}

.grid {
  display: grid;
  align-items: center;
  justify-items: center;
}

#showcase {
  grid-template-columns: auto 180px;

  form {
    background: rgba(34, 34, 30, 0.75);
    grid-template-columns: repeat(3, 1fr);
    grid-column-gap: 1ch;
    padding: 3em;
    justify-self: stretch;

    // All these 3 options get me to the same bug:
    justify-items: stretch;

    // Same with this option:
    input {
      width: 100%;
    }

    // Or this one:
    input {
      justify-self: stretch;
    }
  }
}

Я надеюсь, что у кого-то есть идея и может помочь мне.


person Mr.Floppy    schedule 15.12.2017    source источник
comment
ошибка не отображается на скрипке с Chrome на Mac, это говорит о том, что на вашей странице есть какой-то другой переопределяющий стиль, вызывающий эффект. Судя по звуку, он, вероятно, применяется только к :focus, вы пробовали проверять его в инструментах разработчика? Вы можете принудительно сфокусироваться, а затем посмотреть, какие стили применяются браузером.   -  person delinear    schedule 15.12.2017
comment
@delinear Да, я пробовал :active и :focus. Они добавляют одни и те же свойства CSS в Windows и Mac. В основном добавление layout-offset: -2px; и контур: -webkit-focus-ring-color auto 5px;. Даже если я переопределю значение none и 0, возникнет та же проблема.   -  person Mr.Floppy    schedule 15.12.2017
comment
Возможно, связано (см. нижний раздел моего ответа о вариантах браузера): stackoverflow.com/q/47723114/3597276   -  person Michael Benjamin    schedule 15.12.2017
comment
На самом деле это может быть даже более актуально: stackoverflow.com/q/44932403/3597276   -  person Michael Benjamin    schedule 15.12.2017


Ответы (1)


Это действительно похоже на ошибку в Chrome с обработкой полей ввода в сочетании с системой сетки. Я завернул поля ввода в div, и теперь это работает как шарм.

Спасибо @Michael_B за указание на правильный ответ: https://stackoverflow.com/a/44934676/2224874

person Mr.Floppy    schedule 17.12.2017