Symfony 3.2 - установить переменные среды во время выполнения [дубликат]

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

Вы сталкиваетесь с настройкой по умолчанию для flexbox.

Элемент flex не может быть меньше размера его содержимого вдоль

По умолчанию ...

  • min-width: auto
  • min-height: auto

... для гибких элементов в направлении строки и столбца соответственно.

Вы можете переопределить эти значения по умолчанию, установив элементы гибкости:

  • min-width: 0
  • min-height: 0
  • overflow: hidden (или любое другое значение, кроме visible)

Спецификация Flexbox

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

Чтобы обеспечить более разумный минимальный размер по умолчанию для элементов flex, эта спецификация вводит новое значение auto в качестве начального значения min-width и min-height, определенные в CSS 2.1.

blockquote>

Что касается значения auto ...

В элементе flex чей overflow является visible на главной оси, если указано в параметре минимального размера основной оси гибкого элемента, задается автоматический минимальный размер . В противном случае он вычисляется в 0.

blockquote>

Другими словами:

  • Значения min-width: auto и min-height: auto применяются только тогда, когда overflow имеет значение visible.
  • Если значение overflow не visible, значение свойства min-size равно 0.
  • Следовательно, overflow: hidden может быть замените min-width: 0 и min-height: 0.

и ...


Вы применили min-width: 0, и элемент все еще не сжимается?

Вложенные контейнеры Flex

Если вы используете элементы flex на нескольких уровнях структуры HTML, может потребоваться переопределить значение по умолчанию min-width: auto / min-height: auto на элементах на более высоких уровнях.

В принципе, более высокий уровень сгибает его em с min-width: auto может предотвратить сжатие элементов, вложенных ниже, с помощью min-width: 0.

Примеры:


Примечания к визуализации браузера

  • Chrome против Firefox / Edge . Как минимум 2017, Chrome выглядит как (1), возвращаясь к min-width: 0 / min-height: 0 по умолчанию или (2) автоматически применяя 0 по умолчанию в определенных ситуациях, основанных на тайном алгоритме. (Это может быть то, что они называют вмешательством .) В результате многие люди видят, что их макет (особенно желаемые полосы прокрутки) работают должным образом в Chrome, но не в Firefox / Edge. Эта проблема более подробно рассмотрена здесь: несоответствие гибких ограничений между Firefox и Chrome
  • IE11 Как отмечено в спецификации, значение auto для свойств min-width и min-height является «новым». Это означает, что некоторые браузеры могут по-прежнему отображать значение 0 по умолчанию, поскольку они реализовали гибкую компоновку до того, как значение было обновлено, и поскольку 0 является начальным значением для min-width и min-height в CSS 2.1 . Одним из таких браузеров является IE11. Другие браузеры обновлены до более нового значения auto, как определено в спецификации flexbox .

Пересмотренная демонстрация

.container {
  display: flex;
}

.col {
  min-height: 200px;
  padding: 30px;
  word-break: break-word
}

.col1 {
  flex: 1;
  background: orange;
  font-size: 80px;
  min-width: 0;   /* NEW */
}

.col2 {
  flex: 3;
  background: yellow
}

.col3 {
  flex: 4;
  background: skyblue
}

.col4 {
  flex: 4;
  background: red
}
Lorem ipsum dolor
Lorem ipsum dolor
Lorem ipsum dolor
Lorem ipsum dolor

jsFiddle

4
задан Kioko Kiaza 12 March 2013 в 16:59
поделиться

1 ответ

Вы не можете изменять Контейнер после его компиляции, который выполняется перед вызовом контроллера.

Параметры DIC предназначены для целей конфигурации, а не для замены глобальных переменных. Кроме того, похоже, вы хотите сохранить какую-то постоянную модификацию. В этом случае рассмотрите возможность использования сеанса, если это изменение для каждого пользователя или его сохранение (например, в БД), если оно должно быть общесистемным.

Если вам нужно изменить параметры или службы DIC, вы можете сделать поэтому с использованием компилятора. Более подробную информацию о том, как писать пользовательские пропуски компилятора, можно найти по адресу: http://symfony.com/doc/master/cookbook/service_container/compiler_passes.html

6
ответ дан tomas.pecserke 26 August 2018 в 22:02
поделиться
Другие вопросы по тегам:

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