CSS Grid не работает с формой [duplicate]

Ваше условие - фактически назначение:

if (document.getElementById("hiddenButton").style.visibility = "hidden") {

Вы должны использовать ==:

if (document.getElementById("hiddenButton").style.visibility == "hidden") {
62
задан Loilo 19 February 2018 в 11:28
поделиться

2 ответа

По умолчанию элемент сетки не может быть меньше размера его содержимого.

Элементы сетки имеют начальный размер min-width: auto и min-height: auto.

Вы можете переопределить это поведение, установив элементы сетки на min-width: 0, min-height: 0 или overflow с любым значением, отличным от visible.

Из спецификации:

6.6. Автоматический минимальный размер элементов сетки

Чтобы обеспечить более разумный минимальный размер по умолчанию для элементов сетки, эта спецификация определяет, что значение auto для min-width / min-height также применяется автоматически минимальный размер в указанной оси для элементов сетки, overflow - visible. (Эффект аналогичен автоматическому минимальному размеру, налагаемому на гибкие элементы.)

Вот более подробное объяснение, касающееся элементов гибкости, но оно также относится к элементам сетки:

Этот пост также охватывает потенциальные проблемы с вложенными контейнерами и известные различия в рендеринге между основными браузеров.


Чтобы исправить ваш макет, внесите эти корректировки в свой код:

.month-grid {
  display: grid;
  grid-template: repeat(6, 1fr) / repeat(7, 1fr);
  background: #fff;
  grid-gap: 2px;
  min-height: 0;  /* NEW */
  min-width: 0;   /* NEW; needed for Firefox */
}

.day-item {
  padding: 10px;
  background: #DFE7E7;
  overflow: hidden;  /* NEW */
  min-width: 0;      /* NEW; needed for Firefox */
}

измененный кодеген

87
ответ дан Michael_B 16 August 2018 в 04:29
поделиться
  • 1
    Вау. Это интересно и интересно одновременно, и я бы определенно не придумал этого, просто попробовав. Вы просто заглянули в спецификацию для этой информации? Потому что, не зная, что делать в Google, это то, что я пробовал раньше, но я закончил тем, что читал неправильный раздел (после того, как сделал неправильную причину проблемы). – Loilo 10 April 2017 в 00:20
  • 2
    Раньше я сталкивался с этой проблемой с помощью flex items . Если у вас есть много общего между элементами flex и grid, я решил, что поведение может быть одинаковым и обнулено в этом разделе спецификации. – Michael_B 10 April 2017 в 00:37
  • 3
    @user, реалистичные реализации Grid Layout различаются между Chrome и Firefox. Исходный код в моем ответе работает в Chrome. Но он нуждается в дальнейшей адаптации к работе в ФФ. Добавьте min-width: 0 к обоим .month-grid и .day-item. Ответ пересмотрен. – Michael_B 15 April 2017 в 18:40
  • 4
    Теперь он работает, спасибо. – user 15 April 2017 в 18:46
  • 5
    Это исправление является золотым. Это больной. Это фигово. Не больно значит плохо, но больно значит хорошо. Unbeweebabble. – Ron Royston 10 February 2018 в 23:43
  • 6
2
ответ дан FremyCompany 29 October 2018 в 09:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: