【问题标题】:Nesting Flexboxes in CSS在 CSS 中嵌套 Flexbox
【发布时间】:2014-01-31 03:17:30
【问题描述】:

我正在为一个学校项目创建一个网站,但我希望尝试一下 Flexbox CSS 布局。

但我在将它们与我的标题嵌套时遇到了一点问题,其中包含一个徽标图像和一个导航栏。这是 HTML:

<header id="logo-nav">
  <img src="logo.png" alt="mnml" id="logo">
  <nav id="navigation">
    <ul>
      <li class="nav-button"><a href="#about">About</a></li>
      <li class="nav-button"><a href="#goals">Goals</a></li>
      <li class="nav-button"><a href="#schedules">Schedules</a></li>
      <li class="nav-button"><a href="#form">Contact</a></li>
    </ul>
  </nav>
</header>

我想要完成的是标题的第三部分用于徽标,其余部分用于导航链接。我虽然做到这一点的最好方法是将徽标和导航作为标题框内的框,但我想让导航成为链接的父框,以将它们也视为灵活框。到目前为止我的 CSS:

#logo-nav {
display: flex;
display: -moz-flex;
display: -webkit-flex;
flex-direction: row;
-moz-flex-direction: row;
-webkit-flex-direction: row;
max-width: 100%;
margin: 0 auto;
}

#logo {
flex:4;
-moz-flex:4;
-webkit-flex:4;
}

#navigation {
flex:6;
-moz-flex:6;
-webkit-flex:6;flex-direction: row;
-moz-flex-direction: row;
-webkit-flex-direction: row;
}

#navigation .nav-button {
flex:4;
-moz-flex:4;
-webkit-flex:4

}

但这当然行不通。有什么想法吗?

【问题讨论】:

  • 有什么不好的?
  • 导航按钮的行为不像盒子。你试过了吗?无论我在 Chrome 还是 Firefox(两者都是最新版本)上尝试它,它都不起作用。
  • 我该如何尝试?你没有提供演示。我不必尝试来弄清楚“不起作用”是什么意思。
  • 我提供了代码。我是一个初学者,没有人在课堂上帮助我。我不知道如何提供演示。真的,如果您不想提供帮助,请不要费心回答无用的回复。什么都不感谢。

标签: html css flexbox


【解决方案1】:

我假设 “它不起作用” 你的意思是列表项没有弯曲。这是因为flex 简写只适用于弹性项目,它们是弹性容器的子项。由于ul 和它的后代都不是弹性容器的子元素,它们保留它们的正常显示值。它们不参与弹性格式化上下文并且不受flex 的影响。

为了应用flex,您需要将ul 声明为display: flex;

#navigation ul {
    display: flex;
    padding: 0;
}

http://jsfiddle.net/6E6L6/7/

【讨论】:

  • This 是另一种方法(如果您担心每个链接垂直居中)。
  • 非常感谢。它现在正在工作。顺便说一句,我看到这个 jsFiddle 对在线共享代码非常有用,我一定会使用它;)
猜你喜欢
  • 2020-04-26
  • 2017-05-24
  • 1970-01-01
  • 2017-10-28
  • 2017-11-23
  • 2017-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多