我试图完成以下操作。为了演示的目的,我把它愚蠢了:
我已经完成了除了6号here
以外的所有要点我不能让6号工作。我试过了min-width
。我也尝试过#port;'引导程序的全部内容(我已经在页面上使用了引导程序元素),但这并不能很好地处理一些角度组件(需要轮询其父级的大小;由于某种原因,该元素然后继续增长)
我很感激好主意!
修改 我尝试过使用flexbox。它越来越近了,但是当视口太狭窄时,视口不会滚动...想法? https://jsfiddle.net/498xpp6n/2/
修改 我已经考虑了一些,并且在进入堆叠模式时对所需的列高度进行了一些改动。希望不会毁了某人
答案 0 :(得分:3)
使用flexbox可以进行布局。这就是你所需要的:
<强> HTML 强>
<div id="outer-flex-container"><!-- primary flex container -->
<div id="header">The Header The Header The Header ... </div><!-- flex item #1 -->
<div id="inner-flex-container"><!-- flex item #2 -->
<div id="mainpanel">Mainpanel Mainpanel Mainpanel Mainpanel Mainpanel ... </div>
<div id="aside">settings settings settings settings settings settings ... </div>
</div><!-- end #inner-flex-container -->
<div id="footer">The Footer The Footer The Footer ... </div><!-- flex item #3 -->
</div><!-- end #outer-flex-container -->
<强> CSS 强>
html { height: 100%; }
body { height: 100%; margin: 0; }
#outer-flex-container {
display: flex;
flex-direction: column;
height: 100%;
}
#inner-flex-container {
display: flex;
height: calc(100% - 40px);
}
#header { height: 20px; }
#footer { height: 20px; }
#mainpanel { flex: 0 0 75%; }
#aside { flex: 1; overflow-y: scroll; }
@media screen and ( max-width: 500px) { #inner-flex-container { flex-direction: column; } }
我相信上面的代码涵盖了你问题中的所有七点: - )
更新(基于评论)
<强> HTML 强>
<div id="outer-flex-container"><!-- primary flex container -->
<div id="header">The Header The Header The Header ... </div><!-- flex item #1 -->
<div id="inner-flex-container"><!-- flex item #2 -->
<div id="mainpanel">Mainpanel Mainpanel Mainpanel Mainpanel Mainpanel ... </div>
<div id="aside">settings settings settings settings settings settings ... </div>
<div id="footer">The Footer The Footer The Footer ... </div>
</div><!-- end #inner-flex-container -->
</div><!-- end #outer-flex-container -->
注意:
.inner-flex-container
<强> CSS 强>
body { margin: 0; }
#outer-flex-container {
display: flex;
flex-direction: column;
}
#inner-flex-container {
display: flex;
flex-wrap: wrap;
}
#header { height: 20px; }
#mainpanel {
flex: 0 0 75%;
height: calc(100vh - 40px);
min-height: calc(100vh - 40px);
overflow-y: auto;
}
#aside {
flex: 0 0 25%;
height: calc(100vh - 40px);
overflow-y: auto;
}
#footer {
flex-basis: 100%;
height: 20px;
}
@media screen and ( max-width: 500px) {
#inner-flex-container { flex-direction: column; }
#mainpanel { height: 100vh; }
#aside { height: auto; }
}
注意: