Ответ 1
У меня нет IE10, но похоже, что вы должны посмотреть caniuse.com и известные проблемы. Или, возможно, этот пользовательский список модераторов на Github. Или, может быть, раздел комментариев руководства css-tricks.
Сайт caniuse упоминает:
Значения по умолчанию для IE10 и IE11 по умолчанию для
0 0 auto
, а не0 1 auto
, согласно спецификации проекта, по состоянию на сентябрь 2013 года.
и
В IE10 и IE11 контейнеры с дисплеем: flex и flex-direction: столбец неправильно вычисляет размеры их гибких детей, если контейнер имеет минимальную высоту, но не имеет явного свойства высоты.
Сайт Github упоминает:
При использовании элементов выравнивания: в центре контейнера flex в направлении столбца содержимое элемента гибкости, если оно слишком велико, переполнит контейнер в IE 10-11.
Обход
В большинстве случаев это можно устранить, просто установив max-width: 100% на элемент flex. Если элемент гибкости имеет дополнение или набор границ, вам также необходимо убедиться, что вы используете поле размера: border-box для учета этого пространства. Если элемент гибкости имеет маржу, использование одного размера окна не будет работать, поэтому вам может понадобиться использовать элемент контейнера с дополнением.
Этот комментарий к css-трюкам показывает, что там, где вы обычно говорите flex: 1;
, вы должны сказать -ms-flex: 1 0 auto;
Кроме того, вы должны изменить свой код, где он делает что-то вроде этого:
-webkit-flex-direction: column;
-moz-flex-direction: column;
flex-direction: column;
-ms-flex-direction: column;
:
-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
Вы всегда нуждаетесь в правильной строке кода: один без флагов — в нижней части списка префиксов.