html - flex 订单未按预期工作

标签 html css flexbox

我有一个包含 3 个子 div 的 nav 元素,宽度分别为 25%、50% 和 25%,flexbox 顺序分别为 1、2 和 3。在移动 View 中,我想将第二个元素向下移动到下一行,占据全 Angular ,第一和第三个元素保持在第一行,每个元素占用 50% 的宽度。我将第二个元素的顺序更改为 3 和宽度 100%,同时将第三个元素的顺序更改为 2 和 50% 宽度。但是,它仍然没有按预期工作。是否有可能使用 flexbox 实现类似的东西?
我已经包含了一个示例代码

<nav>
  <div class="a">
    A
  </div>
  <div class="b">
    B
  </div>
  <div class="c">
    C
  </div>
</nav>

和CSS

nav{
  display:flex;
  flex-direction:row;
}
.a,.b,.c{
  border:1px solid blue;
  text-align: center;
}
.a{
  width:25%;
  order:1;
}
.b{
  width:50%;
  order:2;
}
.c{
  width:25%;
  order:3;
}

@media screen and (max-width: 400px){

  .a{
    width:50%;
  }
  .b{
    width:100%;
    order:3;
  }
  .c{
    width:50%;
    order:2;
  }
}

或使用 fiddle
基本上这就是我想要达到的目标。
默认 View
enter image description here
在手机上
enter image description here

最佳答案

我更新了你的 fiddle :https://jsfiddle.net/s9v926g9/1/

您需要添加两件事:

flex-wrap: wrap; 添加到导航元素

这将使元素换行到下一行,而不是将它们自身间隔开超过可用宽度。

设置框大小

添加

*{
  box-sizing: border-box;
}

你的 css 将确保边框不会弄乱你的 flex-wrap。

关于html - flex 订单未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661717/

相关文章:

html - 当浏览器窗口缩小时防止网站出现 "folding"

html - 在 Html Agility Pack 中按位置选择特定元素

javascript - 更改 Z-index 问题

html - 平板电脑/手机中的错误,css 100vh 高度不起作用

css - 如何在 DOMPDF 生成器上显示背景图像

javascript - 悬停时显示隐藏的 div

html - 高度 100% flex

html - 尝试在填充框中添加 float 图像和描述

jquery - 为什么 Chrome 无法正确处理使用 jQuery 添加的 flexbox 元素?

html - 如何为不对称的导航栏创建 css?