- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要一个 100vh 最小高度容器内的居中框,最小高度为 100%,最大高度为 600px。到目前为止这很容易。但在我居中的框中,我还有 3 个其他元素(标题、内容和页脚)。内容部分必须增长,直到达到所有可用空间(在这种情况下,它是父级的最大高度减去标题和 gg 部分)。
这可以用 flexbox 实现吗?
我自己也尝试过,但是一旦我输入 100% 的最小高度而不是元素 div 的像素值,我就会遇到问题。知道如何解决这个问题并可以使用 min-height 100% 吗?
* {
box-sizing:border-box;
margin:0;
padding:0;
}
.wrapper {
background: rgba(red, 0.3);
display:flex;
min-height:100vh;
align-items: center;
justify-content:center;
//flex-direction:column;
.wrapper-inner {
padding:20px;
max-width:80%;
min-height:100%;
//max-height: 500px;
background:#fff;
display:flex;
flex-direction:column;
background: rgba(green, 0.2);
}
.item {
width:100%;
min-height:100%;
display:flex;
flex-direction:column;
max-height:600px;
background:#fff;
}
.titel,
.content,
.footer {
padding:10px;
background: rgba(#000, 0.2);
margin-bottom:10px;
}
.content {
flex-grow:1;
}
}
<div class="wrapper">
<div class="wrapper-inner">
<div class="item">
<div class="titel">Titel here...</div>
<div class="content">
content goes here. this box has to grow until the space is filled.
"Lorem ipsum dolor sit amet, consectetur adipiscing 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 class="footer">gg</div>
</div>
</div>
</div>
这是一个工作 fiddle :https://jsfiddle.net/zg3kLe70/14/
EDIT2: 我越来越接近 :) 最新的 fiddel 似乎在 chrome、firefox、edge 和 safari 中运行良好。但在 IE10/11 中,内容不居中。我认为这是最小高度的问题:100 vh ... https://jsfiddle.net/zg3kLe70/26/
谢谢,马可
最佳答案
您可以使用更少的包装器。对于位于中心的单个盒子(body 是 wrapper-inner):
html,
body {
height: 100%;
display: flex;
flex-direction: column;
background: lightblue;
}
body {
max-height: 600px;
width: 80%;
border: solid;
margin: auto;
background: crimson;
color: white;
}
main {
flex: 1;
background: maroon;
/* overflow:auto; */
/* recommended*/
}
body>* {
padding: 3vh;
}
<header>
<h1>header any height</h1>
</header>
<main>
<p>should it be scrolling when needed</p>
</main>
<footer>
<p>footer any height</p>
</footer>
对于以 100vh 堆叠的几个盒子和一个居中的盒子,需要一个额外的包装器来设置 100% 高度,并需要一个内部包装器来设置 *(max-)* 高度。 ( body 拿着一些 wrapper )
第一个框可能是您在下面的代码片段中寻找的那个,从它的内容开始增长直到达到最大高度集)
html, body , .wrapper, .wrapper-inner{
height:100%;
}
.wrapper, .wrapper-inner {
display:flex;
flex-direction:column;
width:80%;
margin:auto;
}
.wrapper-inner {
max-height:600px;
border:solid;
background:crimson;
color:white;
}
main {
flex:1;
background:maroon;
overflow:auto; /* recommended*/
}
.wrapper:first-of-type .wrapper-inner {
height:auto;
}
.wrapper-inner > * {
padding:3vh;
}
<div class="wrapper">
<div class="wrapper-inner">
<header><h1>header any height</h1></header>
<main> <p>first box will grow up 600px max</p> </main>
<footer><p>footer any height</p></footer></div>
</div>
<div class="wrapper">
<div class="wrapper-inner">
<header><h1>header any height</h1></header>
<main> <p>should it be scrolling when needed</p> </main>
<footer><p>footer any height</p></footer></div>
</div>
<div class="wrapper">
<div class="wrapper-inner">
<header><h1>header any height</h1></header>
<main> <p>should it be scrolling when needed</p> </main>
<footer><p>footer any height</p></footer></div>
</div>
关于html - Flex Grow until specific max-height inside a vertically centered div with 最小高度 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47161069/
这个问题在这里已经有了答案: Flexbox: Align between bottom and center? [duplicate] (2 个答案) 关闭 6 年前。 我正在尝试使用 flexb
用于居中元素的标签是 或 ? 我知道 或 标签不再使用,但哪一个是正确的? 我很迷惑。 Visual Studio 代码说 错了,但只有适用于 Microsoft Edge。 编辑:Microsof
我使用的是标准匹配用户界面和两台 iPad iOS6。问题是当我在第一台设备中创建新的匹配项时,第二台设备应该在我查看匹配用户界面时看到现有的匹配项,但事实并非如此。我确定我的代码是正确的。这是方法:
在我的项目的两个不同的类(都扩展 JFrame)中,我尝试这样做: header = new JLabel("Header"); header.setHorizontalAlignme
我已经在我的网站中实现了以下 jQuery 视差效果(取自 http://www.brandaiddesignco.com/insights/parallax-scrolling-made-easy/
每当我在我的 css 中居中文本时,它也会使图像居中。这是为什么?文本位于一个 div(“左”)内,图像位于第二个 div(“右”)内。这是 HTML - BANKS 还有
我现在有这段代码: 1 enE jk 5.6 mtE hp 6.4 hpE eb HML reE pm 514 hpE e
我只是制作一个页面或类似的东西。我想让我的按钮居中,但它不起作用。 我尝试用不同的方法将它居中,但它不起作用。看看代码。它有但它并没有将它置于整个页面的中心但只是喜欢......我不知道。照片:htt
我想知道如何将此页面中的字形居中,它们是使用@font-face 的图标字体,但即使在我将 text-align:center 应用于包含每个字形的 anchor 之后,它们也不是居中。 它们显示为左
考虑以下 HTML 片段, Hyperlink 如上所示,由于“...”标签,所有内容都将居中对齐。但是,我不希望带有“id=three”的 HTML 元素的中心对齐
我有以下 html: Site Map Privacy Policy Terms & Condi
我在将我正在处理的布局中的按钮上的文本居中时遇到问题。请查看下面的屏幕截图(在 eclipse 的“图形布局”选项卡中截取): 我不确定是什么原因造成的。我试着玩弄按钮的各个布局属性,但这没有任何效果
我正在尝试使用 Bootstrap 组装页脚。由于某些原因,尽管确保应用了 text-align: center;,但页脚链接看起来略微偏离中心。有没有办法确保所有文本元素确实正确对齐? HTML
我在使用 flexbox 工具 align-items:center; 时遇到了问题,它在中间并不完美,但文本、图标等的像素太高了……有人知道如何解决这个问题? screenshot how it l
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
GameKit 是否允许您以编程方式邀请特定的 Game Center friend 参加比赛,即不提供 GC ViewController?以下 handleInviteFromGameCenter
我有一个布局问题。 假设我有一个 RelativeLayout 出现在我的屏幕底部。在此,我想添加 2 个 TextView ,一个在中心,一个在顶部中心,一个在底部中心。 |------------
我有一个启动画面的 Activity layout.xml,它基本上显示了我想要的内容。但是如果我在更大或更小的屏幕设备上打开应用程序,它就不再居中了。 有没有办法在元素周围放置一个包装器并将其在屏幕
尝试了几十种方法后,我自己也想不出解决方案 #banner .slide { position: static; top: 0px; left: 0px; z-inde
您将如何修复以下传递过多参数的错误代码? void helper1(int p1, int p3, int p5, int p7, int p9, int p10) { // ... } void
我是一名优秀的程序员,十分优秀!