Рассмотрим следующий фрагмент:
.parent {
display: flex;
flex-direction: column;
width: 400px;
border: 1px solid red;
align-items: center;
}
.child {
border: 1px solid blue;
}
<div class="parent">
<div class="child">
Lorem Ipsum is simply dummy text of the printing and typesetting industry
</div>
<div class="child">
Lorem Ipsum is simply dummy text of the printing and typesetting industry
</div>
</div>
В Chrome текст переносится, как и ожидалось:
Но в IE11 текст не переносится :
Это известная ошибка в IE? (если да, указатель будет оценен)
Есть ли известный обходной путь?
На этот похожий вопрос нет определенного ответа и официального указателя.
css
internet-explorer
flexbox
internet-explorer-11
Миша Морошко
источник
источник
align-items: center
из родительского элемента. Похоже, именно это и вызывает егоОтветы:
Добавьте это к своему коду:
Мы знаем, что дочерний элемент уровня блока должен занимать всю ширину родительского элемента.
Chrome это понимает.
IE11 по какой-то причине хочет явный запрос.
Использование
flex-basis: 100%
илиflex: 1
также работает.Показать фрагмент кода
Примечание. Иногда бывает необходимо отсортировать различные уровни структуры HTML, чтобы точно определить, какой контейнер получает
width: 100%
. CSS перенос текста не работает в IEисточник
flex: 1 1 50%; display: flex; align-items: center;
Не удивительно, что IE не работает, когда перенос текста в ячейки выполняется в длинных текстах. Настройкаwidth:100%
работает, но настройкаmin-width: 100%
не выполняется! Должна, но не работает т (как и все IE), так что я попробовалmax-width: 99%
, и удивительно, что он делает работу , я думаю , что с помощью.width:100%
может быть лучше?flex-direction: column
на родителя для этого, чтобы работать.У меня была та же проблема, и дело в том, что элемент не адаптировал свою ширину к контейнеру.
Вместо того , чтобы использовать
width:100%
, быть последовательным (не смешивать с плавающей модели и гибкую модель) и использовать прогибается, добавив следующее:Или:
Это сработало для меня.
источник
Как предложил Тайлер в одном из комментариев, используя
на ребенка может работать (работал на меня). Использование
align-self: stretch
работает только если вы не используетеalign-items: center
(что я и сделал).width: 100%
работает только в том случае, если у вас нет нескольких дочерних элементов внутри вашего flexbox, которые вы хотите показать рядом.источник
Привет, мне пришлось применить ширину 100% к элементу «прародитель». Не его дочерний элемент (ы).
источник
Почему-то все эти решения не сработали для меня. Там явно ошибка IE
flex-direction:column
.У меня это работает только после удаления
flex-direction
:источник
Предложенные решения не помогли мне с ".child {width: 100%;}", так как у меня была более сложная разметка. Однако я нашел решение - удалите «align-items: center;», и это работает и для этого случая.
источник
align-items: center
. См stackoverflow.com/a/39365207/630170Единственный способ, которым я на 100% смог последовательно избежать этой ошибки в столбце flex-direction, - это использование медиазапроса минимальной ширины для назначения максимальной ширины дочернему элементу на экранах размером с рабочий стол.
Вам нужно будет естественным образом установить встроенные дочерние элементы (например,
<span>
или<a>
) в нечто иное, чем встроенное (в основном display: block или display: inline-block), чтобы исправление работало.источник
Я не нашел здесь своего решения, может быть кому-то пригодится
Удачи!
источник
Это сработало для меня.
источник
Я тоже столкнулся с этой проблемой.
Единственная альтернатива - определить ширину (или максимальную ширину) в дочерних элементах. IE 11 немного глуп, и я потратил 20 минут, чтобы реализовать это решение.
источник
У меня была похожая проблема с переполнением изображений в flex-оболочке.
Добавление либо
flex-basis: 100%;
илиflex: 1;
в переполненном ребенок фиксированной работал для меня.источник
Зачем использовать сложное решение, если простое тоже работает?
источник