Является ли элемент легенды элементом сетки, если отображение набора полей является сеткой? - PullRequest
0 голосов
/ 16 сентября 2018

В каком разделе спецификации css-grid указано, как должен обрабатываться элемент легенды , если fieldset *Элемент 1010 * имеет значение display: grid ?

Как известно, элемент legend обычно является первым дочерним элементом элемента fieldset элемента, но редко кто-то захочет, чтобы он рассматривался как элемент сетки.

Интересно, нужно ли принимать явные меры предосторожности для обеспечения того, чтобы legend элемент НЕ будет рассматриваться как элемент сетки, или если в спецификации уже есть какое-то правило (я пропускаю), которое означает legend Элемент (по спецификации) не является элементом сетки.

1 Ответ

0 голосов
/ 16 сентября 2018

Вы не найдете эти детали в спецификации CSS, но в спецификации HTML.А HTML довольно точно определяет, как должны отображаться элементы fieldset и legend, и, по историческим причинам, реализации макетов для этих элементов чрезвычайно жесткие, с очень небольшим приспособлением к изменениям режимов макета через свойство display.

По этой причине display: grid просто не поддерживается на полях ни одним браузером.Фактически, всего несколько дней назад обсуждался вопрос о предлагаемом дополнении к спецификации HTML, чтобы указать, как следует обрабатывать свойство display для элементов fieldset и legend, и эточто планируется добавить:

Элемент fieldset, когда он генерирует блок (т. е. не «display: none» или «display: contents»), должен действовать следующим образом:

  • ...

  • Ожидается, что свойство 'display' будет действовать следующим образом:

    • Если вычисленное значение 'display' является одним из 'inline', 'inline-block', 'inline-table', 'ruby', 'ruby-base', 'ruby-text', 'ruby-base-«контейнер», «ruby-text-container», «inline-flex» или «inline-grid», тогда ведут себя как «inline-block».

    • Если вычисленное значение«display» является одним из «block», «table», «table-row-group», «table-header-group», «table-footer-group», «table-row», «table-cell»,'table-column-group', 'table-column', 'table-caption', 'list-item', 'flow', 'flow-root ',' run-in ',' flex 'или' grid ', затем ведут себя как' block '.

Это в основном цементируеттекущий текст, в котором говорится, что элемент fieldset должен устанавливать контекст форматирования блока, без указания того, как он должен себя вести, если UA решит не следовать этому определению.

Это в сочетании с текущим взаимодействующим поведением браузера, означает, что на макет элемента legend не повлияет его родительский элемент fieldset, имеющий display: grid, так как его родительский элемент fieldset не сможет стать контейнером сетки.

...