演示:https://embed.plnkr.co/dIPh53W4DBkmTB51DCHp/(用IE 11打开)
编辑代码:https://plnkr.co/edit/dIPh53W4DBkmTB51DCHp?p=preview
在这种情况下,在平板电脑视图中,< ul> flex宽度应为90%,但在桌面视图中< ul>柔性宽度应仅为55%.但是,我们不希望< ul>在桌面视图中比在平板电脑视图中更短,因此我们在< ul>上设置最小宽度:864px用于桌面视图.因此,如果您在950px和970px之间调整屏幕大小,则< ul>不应该再突然缩小.
这似乎适用于所有Chrome,Firefox,Safari和IE10.
但在IE11中,元素的宽度不正确,并且不会按预期居中.我认为这是因为在960px的浏览器维度上,55%将是最大宽度:< ul>上的528px.元素,但它也有最小宽度:864px.出于某种原因,IE11将其定位为左侧(而不是中心),宽度为528px.所以IE11似乎忽略了min-width属性,它不像其他浏览器那样处理它.
代码示例:
index.html的:
<div class="progress-bar"> <ul> <li>Test item</li> <li>Test item</li> <li>Test item</li> <li>Test item</li> </ul> </div>
style.css中:
div { display: flex; flex-direction: row; justify-content: center; } ul { display: flex; flex: 1 1 90%; max-width: 90%; margin: 0; padding: 0; list-style-type: none; } li { display: flex; flex: 1 1 0%; justify-content: center; margin: 0; padding: 12px 0; list-style-type: none; background: #f7f7f7; } @media (min-width: 960px) { ul { min-width: 864px !important; flex-basis: 55%; max-width: 55%; } }
IE 10在这种情况下实际上工作正常,所以似乎IE 11版本可能已经破坏了已经有效的东西.
有什么想法可以解决这个问题吗?
解决方法
在我们想要90%宽度到959px屏幕尺寸的情况下,然后在960px屏幕尺寸后55% – 我做了计算以确定我们想要< ul>当屏幕在960px和1570px(864px / 55%)之间时,元素宽度为864px(960px x 90%).因此,对于此尺寸范围,我强制宽度和最大宽度为864px.
然后对于大于1571px的屏幕,55%的flexBox继续再次应用.
使用这种方法,我可以完全忽略min-width.
@media (min-width: 960px) and (max-width: 1570px) { ul { flex-basis: 100%; max-width: 864px; width: 864px; } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。