IE11 flexbox 文本不包含在列表项中
IE11 flexbox text doesn't wrap in list item
我遇到了 IE11 的问题,即文本不像其他浏览器那样换行。我已经为这个问题设置了一个代码笔。
https://codepen.io/johnny_gruber/pen/QmBePd
HTML
<header>
<div class="logo">
<img src="https://upload.wikimedia.org/wikipedia/commons/c/ce/Coca-Cola_logo.svg" alt="">
</div>
<div class="search">
search
</div>
<div class="language">
DE v
</div>
<nav>
<ul>
<li>Home</li>
<li>Product & Solutions</li>
<li>Industries</li>
<li>Facilities</li>
<li>About Us</li>
<li>Contact Us</li>
<li>Group Website</li>
</ul>
</nav>
<div class="login">
login v
</div>
</header>
css
header {
display: flex;
flex-direction: row wrap;
max-width: 100%;
}
.logo,
.search,
.language,
.login {
flex-shrink: 0;
}
ul {
display: flex;
float: right;
}
li {
padding: 25px 15px;
}
nav {
flex-grow: 1;
flex-shrink: 1;
}
在 chrome 中,您可以看到预期的行为。如果可能,文本换行。在 IE11 中,它只停留在一行中。是否有机会在 IE11 上获得相同的行为?
谢谢!
IE 11 requires a unit to be added to the third argument, the flex-basis property
c/o CanIuse.com
从那里开始,只需将 ul
设置为 display:flex
并将 li
设置为:
li {
padding: 25px 15px;
flex: 1 1 50px;
}
body {
font-family: Arial;
font-size: 16px;
}
header {
display: flex;
flex-direction: row wrap;
max-width: 100%;
}
.logo {
height: 72px;
}
.search,
.language,
.login {
width: 50px;
height: 50px;
padding: 10px;
border: 1px solid silver;
}
.logo,
.search,
.language,
.login {
flex-shrink: 0;
}
ul {
display: flex;
list-style:none;
}
li {
padding: 25px 15px;
flex: 1 1 50px;
}
nav {
flex-grow: 1;
flex-shrink: 1;
}
<header>
<div class="logo">
<img src="https://upload.wikimedia.org/wikipedia/commons/c/ce/Coca-Cola_logo.svg" alt="">
</div>
<div class="search">
search
</div>
<div class="language">
DE v
</div>
<nav>
<ul>
<li>Home</li>
<li>Product & Solutions</li>
<li>Industries</li>
<li>Facilities</li>
<li>About Us</li>
<li>Contact Us</li>
<li>Group Website</li>
</ul>
</nav>
<div class="login">
login v
</div>
</header>
我遇到了 IE11 的问题,即文本不像其他浏览器那样换行。我已经为这个问题设置了一个代码笔。
https://codepen.io/johnny_gruber/pen/QmBePd
HTML
<header>
<div class="logo">
<img src="https://upload.wikimedia.org/wikipedia/commons/c/ce/Coca-Cola_logo.svg" alt="">
</div>
<div class="search">
search
</div>
<div class="language">
DE v
</div>
<nav>
<ul>
<li>Home</li>
<li>Product & Solutions</li>
<li>Industries</li>
<li>Facilities</li>
<li>About Us</li>
<li>Contact Us</li>
<li>Group Website</li>
</ul>
</nav>
<div class="login">
login v
</div>
</header>
css
header {
display: flex;
flex-direction: row wrap;
max-width: 100%;
}
.logo,
.search,
.language,
.login {
flex-shrink: 0;
}
ul {
display: flex;
float: right;
}
li {
padding: 25px 15px;
}
nav {
flex-grow: 1;
flex-shrink: 1;
}
在 chrome 中,您可以看到预期的行为。如果可能,文本换行。在 IE11 中,它只停留在一行中。是否有机会在 IE11 上获得相同的行为?
谢谢!
IE 11 requires a unit to be added to the third argument, the flex-basis property
c/o CanIuse.com
从那里开始,只需将 ul
设置为 display:flex
并将 li
设置为:
li {
padding: 25px 15px;
flex: 1 1 50px;
}
body {
font-family: Arial;
font-size: 16px;
}
header {
display: flex;
flex-direction: row wrap;
max-width: 100%;
}
.logo {
height: 72px;
}
.search,
.language,
.login {
width: 50px;
height: 50px;
padding: 10px;
border: 1px solid silver;
}
.logo,
.search,
.language,
.login {
flex-shrink: 0;
}
ul {
display: flex;
list-style:none;
}
li {
padding: 25px 15px;
flex: 1 1 50px;
}
nav {
flex-grow: 1;
flex-shrink: 1;
}
<header>
<div class="logo">
<img src="https://upload.wikimedia.org/wikipedia/commons/c/ce/Coca-Cola_logo.svg" alt="">
</div>
<div class="search">
search
</div>
<div class="language">
DE v
</div>
<nav>
<ul>
<li>Home</li>
<li>Product & Solutions</li>
<li>Industries</li>
<li>Facilities</li>
<li>About Us</li>
<li>Contact Us</li>
<li>Group Website</li>
</ul>
</nav>
<div class="login">
login v
</div>
</header>