【问题标题】:Making a page centered as long as it does not overflow in CSS使页面居中,只要它不会在 CSS 中溢出
【发布时间】:2020-10-26 00:40:23
【问题描述】:

我有一个网页,它的主体会随着时间的推移(通过用户点击等)扩展,我想居中(垂直)。

我还希望它在内容超过页面高度(溢出时)时可以滚动,但它必须与页面顶部对齐。

我希望它表现得像这样,我想用flexbox实现它:

有什么想法吗?

【问题讨论】:

  • html {display:flex;min-height:100%;} body{width:100%;margin:auto;} 应该是一个开始。
  • @G-Cyrillus 可行,但有没有办法做到这一点没有边距:自动?
  • @Blackhole 不,不是。
  • @NadavTasher 是的,有很多方法不使用 margin: auto。检查我的答案

标签: html css


【解决方案1】:

如果可能,使用类属性“容器”和“盒子”定义新标签

窗口 -> .container

正文 -> .box

* {
  margin: 0;
  padding: 0;
}

.container {
  display: grid;
  align-items: center;
  height: 100vh;
  overflow: scroll;
}

.box {
  background-color: yellow;
}
<div class="container">
  <div class="box">
    this is box
  </div>
</div>

【讨论】:

  • 嗨,这个答案并不能解决我的 flexbox 问题。
【解决方案2】:

这是flex box的一个

* {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

body {
  display: flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
}

.container {
  position: relative;
  background: darkcyan;
  width: 60%;
  padding: 5%;
  display: flex;
  justify-content: space-around;
  align-items: center;
}

.content {
  background: cyan;
  width: 80%;
  overflow-y: scroll;
  max-height: 400px;
  text-align: center;
}
<div class="container">
  <div class="content">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
    in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit,
    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
    eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </div>
</div>

【讨论】:

  • 这个对我不起作用。您无法滚动到顶部。
  • 表示您希望cantainer 中的content 在收缩时可以滚动
  • @NadavTasher 现在检查我进行了编辑,当您缩小页面时,content 转为可滚动页面
  • 在整页中运行 sn-p 并尝试缩小页面内容而不是溢出它将变成可滚动的内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2018-02-14
  • 2011-01-17
相关资源
最近更新 更多