Ширина элемента Flex не может работать в IE11, когда контейнер имеет правую полосу прокрутки - PullRequest
0 голосов
/ 22 февраля 2019

Вот пример

.FlexContainer {
	background: hsla(0,0%,0%,.1);
	display: flex;
	flex-direction: column;
	max-height: 220px;
	margin: 10px;
	padding: 20px;
	width: 300px;
	overflow-y: auto;
}

.FlexItem {
	background: hsla(0,0%,0%,.1);
	width: 80%;
	margin: 2px;
	padding: 6px;
	word-break: break-all;
	white-space: normal;
	cursor: pointer;
}

.FlexItem:hover{
	background-color: red;
}
<html>
<head>
<title>demo</title>
</head>
<body>
<div class="FlexContainer">
    <div class="FlexItem">
        The contents is short in IE11.
    </div>
    <div class="FlexItem">
        The contents is long - inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
	<div class="FlexItem">
        The contents inside of this box are overflowing their container in IE11.
    </div>
</div>
</body>
</html>

В Chrome он может хорошо работать Chrome работает хорошо

Но в IE11 это не то, что я ожидал. Работа IE11 не ожидается

Эта проблема возникает только в том случае, если высота контейнера меньше, чем у элементов fex и задано значение overflow-y: auto / scroll.

Кто-нибудь может помочь мне найтипричина проблемы?

Благодарим вас за помощь.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Я нашел ключевую точку, может быть, формат установки ширины FlexItem.

Если вы измените ширину: 80% на 200 пикселей, она будет хорошо работать в IE.

Я предполагаю, что если вы пишете в формате%, IE может не понять это хорошо.

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

Working in IE

0 голосов
/ 22 февраля 2019

Internet Explorer требует, чтобы вы указали значение flex для ваших детей.Попробуйте добавить свойство flex: 1 0 auto; в класс FlexItem

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