'justify-content' 属性不起作用

新手上路,请多包涵

我有一个奇怪的问题,我遇到了麻烦。我一直在研究这个使用 Flexbox 的原型 HTML5 模板。虽然我遇到了一个小问题。

我试图通过将“justify-content”属性应用于父 div 来为模板的侧边栏和内容区域留出一个小空间。虽然它没有在侧边栏和内容区域之间添加那个空间。我不确定我做错了什么。因此,如果有人可以帮助我,那就太好了。

这是我的 HTML 内容:

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="../scripts/javascript/responsive_drop_down.js"></script>
    <link href="../css/protoflexcss.css" rel="stylesheet" type="text/css" media="screen"/>
    <title>Welcome to My Domain</title>
</head>

<body>
    <header>
        <h1>This is a placeholder <br />
            for header</h1>
    </header>
        <nav class="main">
            <div class="mobilmenu"></div>
                <ul>
                    <li><a href="#">Home</a></li>
                    <li><a href="#">Video</a></li>
                    <li><a href="#">Pictures</a></li>
                    <li><a href="#">Audio</a></li>
                    <li><a href="#">Other Work</a></li>
                    <li><a href="#">About Me</a></li>
                    <li><a href="#">Contact Me</a></li>
                </ul>
        </nav>
        <div id="wrapper">
            <article class="content-main">
                <section>
                    <h2>Heading goes here...</h2>
                    <time datetime="2014-05-21T02:43:00">Officialy Posted On May 21<sup>st</sup> 2:35 A.M.</time>
                    <p>Content will go here...</p>
                </section>
            </article>
            <aside>
                <p>More content soon...</p>
            </aside>
    </div>
    <footer>
            <div class="copyright">
                <span>All rights reserved 2014.</span>
            </div>
        <nav class="foot">
            <ul>
                <li><a href="#">Home</a></li>
                <li><a href="#">Video</a></li>
                <li><a href="#">Pictures</a></li>
                <li><a href="#">Audio</a></li>
                <li><a href="#">Other Work</a></li>
                <li><a href="#">About Me</a></li>
                <li><a href="#">Contact Me</a></li>
            </ul>
        </nav>
    </footer>
</body>

</html>

这是相关的CSS:

 #wrapper
{
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    flex-flow: row wrap;
    flex: 1 100%;
    width:92.5%;
    align-self: center;
    padding-top: 3.5em;
    padding-bottom: 2.5em;
    margin: 0;
}

#wrapper article.content-main
{
    flex: 6;
    order: 2;
}

#wrapper article.content-main section
{
    background-color: rgba(149, 21, 130, 0.61);
    border: 2px solid #c31cd9;
    padding: 0.9em;
}

#wrapper aside
{
    flex: 1;
    padding: 0.4em;
    background-color: rgba(17, 208, 208, 0.56);
    border: 2px solid #15d0c3;
    position: sticky;
}

注意:如果有人需要与我的 html 的任何其他元素相关的任何其他 CSS 代码,请告诉我,我也很乐意将其添加到问题中。

原文由 VEDA0095 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

justify-content 当您的弹性项目弯曲以吸收可用空间后还有剩余空间时才有效。在大多数/许多情况下,不会有任何可用空间,实际上 justify-content 不会做任何事情。

产生影响的一些示例:

  • 如果您的弹性项目都是不灵活的( flex: noneflex: 0 0 auto ),并且比容器小。

  • 如果您的弹性项目是灵活的,但由于每个弹性项目上都有一个 max-width ,因此无法增长以吸收所有可用空间。

在这两种情况下, justify-content 将负责分配多余的空间。

但是,在您的示例中,您的弹性项目具有 flex: 1flex: 6 没有 max-width 限制。您的灵活项目将增长到吸收所有可用空间,并且没有空间可供 justify-content 做任何事情。

原文由 dholbert 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个答案可能很愚蠢,但我花了很长时间才弄明白。

发生在我身上的是我没有将 display: flex 设置到容器(具有 justify-content 属性的元素)。当然, justify-content 没有该属性将无法工作。

原文由 technophyle 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题