Вот основной пример:

даю форму, которая имеет обязательные поля. Чтобы пометить их как обязательные, я ставлю звездочку (*) как::before элемент и плавающий прямо так, чтобы это было в верхнем правом углу поля.

У меня проблема в том, что некоторые из этих полей располагаются с помощью CSS-сеток, и когда я добавляю::before элемент сетки, он рассматривается как другой элемент сетки и переносит все в новую строку сетки.

Почему CSS-сетки обрабатывают::before элемент как еще один элемент сетки? Как бы я сделал звездочку, как элементы ввода?

Вот основной HTML / CSS:

html {
  width: 75%;
}

ul {
  list-style: none;
}

input {
  width: 100%
}

.grid {
  display: grid;
  grid-template-columns: .33fr .33fr .33fr;
}

li.required::before {
  content: '*';
  float: right;
  font-size: 15px;
}
<ul>
  <li class="required">
    <input type="text">
  </li>
  <li class="grid required">
    <p>one</p>
    <p>two</p>
    <p>three</p>
  </li>
  <li class="required">
    <input type="text">
  </li>
</ul>

Вот скрипка:https://jsfiddle.net/zbqucvt9/

Ответы на вопрос(0)

Ваш ответ на вопрос