【问题标题】:HTML centre a CCS flexible layout [closed]HTML中心一个CSS灵活布局[关闭]
【发布时间】:2020-12-12 11:39:05
【问题描述】:

我使用这个示例codepen 作为一个简单站点的基础。

这很好用,但我希望布局位于页面中心,而不是全高。请查看示例图片。

有没有办法做到这一点并保持页面的灵活性?

我尝试将 heightmax-height 添加到包装中,但这并没有任何区别。

谢谢

【问题讨论】:

标签: html css


【解决方案1】:

所以,您想使用align-items: center;。但是你必须选择在哪里使用它。如果您希望侧边栏保持原样,您应该稍微更改一下 html 代码:

<div class="content">
   <div class="inner">
      Actual content goes here.
   </div>
</div>

在css中:

.content {
  display: flex;
  justify-content: center;
}

现在黄色背景将保持原样,但文本将垂直居中。

如果您将display: flex;justify-content: center; 放在.main 上,侧边栏和内容都会居中。然后它看起来像这样:

html:

<div class="content">
   Actual content goes here.
</div>

和css:

.main {
    flex: 1;
    display:flex;
    align-items:center;
}

编辑: 由于我误解了这个问题,我会在这里回答,但我会留下上面的部分,因为有人可能会觉得它有用。

因此,您需要修改 .wrap 的样式。由于您在其上设置了flex-direction: column;,因此要将其垂直居中,您必须使用justify-content: center; 而不是align-items: center,因为现在主轴是垂直轴。所以:

.wrap {
    display: flex;
    ...
    justify-content: center;
}
.main {
    max-height: 500px; /* set whatever you want */
    ...
}

【讨论】:

  • 他在谈论heightmax-height 时不是在谈论侧边栏而是整个页面。所以唯一合乎逻辑的结论是,他试图将整个元素垂直居中。
  • 好的,我会编辑我的答案。
  • 它是我想要居中的整个页面,而不是其中的内容。 codepen 显示页面占据屏幕的整个高度,我的图像是我正在尝试做的一个例子。谢谢
  • 好的,让我编辑我的答案。
【解决方案2】:

使用align-items 属性解决这个问题

.main {
    flex: 1;
    display:flex;
    align-items:center;
}

【讨论】:

  • 这也将使侧边栏居中,我认为这不是他想要的。
  • 他在谈论heightmax-height 时正在谈论整个页面。所以唯一合乎逻辑的结论是,他试图将整个元素垂直居中。
  • @tacoshy - 更正我想要居中的整个页面。我该怎么做?
  • @Rocket 您的问题下方有 2 个 cmets,其中包含指向解决方案的链接。尤其是最后一个将能够轻松地为您提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 2019-02-16
  • 1970-01-01
相关资源
最近更新 更多