Является ли стандартом, что ширина или высота элемента «display: none» равна нулю? - PullRequest
2 голосов
/ 01 июня 2019

Параметр offsetWidth или offsetHeight элемента «display: none» в Chrome равен 0.

Что я хочу знать, так это стандартное поведение, определенное W3C, или просто диалект браузеров? Или это де-факто поддерживается всеми современными браузерами?

Я искал в Интернете и почти не нашел текста, касающегося моего вопроса.

1 Ответ

2 голосов
/ 01 июня 2019

Да, это стандартное поведение.

Если display равно none, то поле макета не создается:

Обратите внимание, что отображение none отображаетсяне создавать невидимую коробку;это не создает никакой коробки вообще.CSS включает механизмы, которые позволяют элементу генерировать блоки в структуре форматирования, которые влияют на форматирование, но сами не видны.Пожалуйста, обратитесь к разделу о видимости для деталей.

https://drafts.csswg.org/css2/visuren.html#display-prop

И если нет поля, то он возвращает ноль:

Смещение шириныАтрибут должен возвращать результат выполнения этих шагов:

  1. Если элемент не имеет какого-либо связанного поля макета CSS, возвращает ноль и завершает этот алгоритм.
  2. Возвращает ширину края границыпервое поле макета CSS, связанное с элементом, игнорируя любые преобразования, которые применяются к элементу и его предкам.

https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsetwidth

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...