Как заставить flex-basis работать в IE11
мой сайт полностью сломан в IE11. Проблема исходит от flex: 1 1 0%;
, который я использую везде спасибо autoprefixer и postcss-flexbugs-исправления.
сайт работает на IE, когда я меняю его на flex: 1 1 auto;
, но затем некоторые поведения меняются (например, один flexbox с двумя flex: 1 1 auto;
дети, которые не занимают точно такое же пространство). Поэтому это решение нарушает мои проекты в других браузерах (делая его намного приятнее-не сломанным ИЕ11).
как людям удается заставить свои сайты, построенные с помощью Flexbox, работать на IE11?
Edit: вот ручка, которая подчеркивает проблему, с которой я сталкиваюсь:https://codepen.io/Zephir77167/pen/GMjBrd (попробуйте на Chrome и IE11).
Edit2: вот код:
HTML-код:
<div id="a" class="flex">
<div id="b" class="item flex-1">
Hey
</div>
<div id="c" class="item flex-0">
Ho
</div>
<div id="d" class="item flex-1">
Heyheyheyheyho
</div>
</div>
<br />
<div id="a" class="flex">
<div id="b" class="item flex-1-variation">
Hey
</div>
<div id="c" class="item flex-0">
Ho
</div>
<div id="d" class="item flex-1-variation">
Heyheyheyheyho
</div>
</div>
CSS:
* {
box-sizing: border-box;
}
#a {
background-color: pink;
height: 300px;
width: 100px;
}
#b {
background-color: green;
height: 50px;
}
#c {
background-color: blue;
height: 100px;
}
#d {
background-color: yellow;
height: 150px;
}
.flex {
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
}
.item.flex-0 {
flex: none;
}
.item.flex-1 {
flex: 1 1 0%;
}
.item.flex-1-variation {
flex: 1 1 auto;
}
1 ответов
когда дело доходит до IE11, вы можете настроить его явно, используя это правило CSS:
_:-ms-fullscreen, :root .IE11-only-class {
/* IE11 specific properties */
}
фрагмент стека
* {
box-sizing: border-box;
}
#a {
background-color: pink;
height: 300px;
width: 100px;
}
#b {
background-color: green;
height: 50px;
}
#c {
background-color: blue;
height: 100px;
}
#d {
background-color: yellow;
height: 150px;
}
.flex {
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
}
.item.flex-0 {
flex: none;
}
.item.flex-1 {
flex: 1 1 0%;
}
_:-ms-fullscreen, :root .IE-FlexAuto {
flex-basis: auto;
}
<div id="a" class="flex">
<div id="b" class="item flex-1 IE-FlexAuto">
Hey
</div>
<div id="c" class="item flex-0">
Ho
</div>
<div id="d" class="item flex-1 IE-FlexAuto">
Heyheyheyheyho
</div>
</div>
вот сообщение с моим ответом, который говорит еще об этом, а также предоставляет некоторые решения скриптов, которые могут быть полезны