Main Div 动态扩展
Main Div expand dynamically
我正在尝试为我的主页设置一个简单的布局。
这就是我想要的样子:
不幸的是,我很难指定 main
div 的大小。我希望它动态扩展,包括高度和宽度。所以应该"fill"剩下的内容,没有被menu
和footer
.
填满
HTML:
<body>
<div class="container">
<div class="nav">
<ul>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</div>
<div class="main">
Text...
</div>
<div class="footer">
Footer
</div>
</div>
</body>
CSS:
.nav, .content{
display: inline-block;
vertical-align: top;
}
.nav{
width: 200px;
background-color: #ccc;
}
.main{
height: 100%; /* something like 100% - 50px (height of footer) */
width: 100%; /* something like 100% - 200px (width of menu) */
overflow: hidden;
background-color: #aabbcc;
}
.footer{
background-color: #ff9999
}
你可以在这里找到一个例子:http://jsfiddle.net/48q5f4u9/3/
.nav{
width: 200px;
float: left;
background-color: #ccc;
}
Link 到 Fiddle
这是使内容动态化的一种简单方法,将浮动设置为侧边栏。
但我认为你需要做更多的改变,将页脚设置在底部(页脚总是在页面的末尾),这样你可以让事情看起来更有吸引力。
希望这对您有所帮助,让我知道 ;)
首先重置:
* {margin:0;padding:0}
在 body, html
标签和主容器上使用 100%
后 .container
:
html,body, .container {
height:100%;
}
然后使用calc()
设置尺寸,如:
.main{
height: calc(100% - 50px);
width: calc(100% - 200px);
overflow: hidden;
background-color: #aabbcc;
}
DemoFiddle
您可以对主导航和导航使用粘性页脚和绝对和边框,并使用填充,因为它们具有定义的大小:
* {
padding: 0;
margin: 0;
}
html, body {
height: 100%;
}
.main, .nav {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.container {
min-height: 100%;
margin-bottom: -50px;
overflow: hidden;
}
.nav {
position: absolute;
left: 0;
padding-bottom: 50px;
top: 0;
width:200px;
height: 100%;
background: #1abc9c;
z-index: 1;
}
.main {
top: 0;
width: 100%;
height: 100%;
padding: 0 0 50px 200px;
background: #3498db;
height: 100%;
position: absolute;
left: 0;
}
.container:after {
content: "";
display: block;
}
.footer, .container:after {
height: 50px;
}
.footer {
position: relative;
background-color: #e74c3c;
z-index: 2;
width: 100%;
}
<div class="container">
<div class="nav">
<ul>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</div>
<div class="main">
Text...
</div>
</div>
<div class="footer">
Footer
</div>
我正在尝试为我的主页设置一个简单的布局。
这就是我想要的样子:
不幸的是,我很难指定 main
div 的大小。我希望它动态扩展,包括高度和宽度。所以应该"fill"剩下的内容,没有被menu
和footer
.
HTML:
<body>
<div class="container">
<div class="nav">
<ul>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</div>
<div class="main">
Text...
</div>
<div class="footer">
Footer
</div>
</div>
</body>
CSS:
.nav, .content{
display: inline-block;
vertical-align: top;
}
.nav{
width: 200px;
background-color: #ccc;
}
.main{
height: 100%; /* something like 100% - 50px (height of footer) */
width: 100%; /* something like 100% - 200px (width of menu) */
overflow: hidden;
background-color: #aabbcc;
}
.footer{
background-color: #ff9999
}
你可以在这里找到一个例子:http://jsfiddle.net/48q5f4u9/3/
.nav{
width: 200px;
float: left;
background-color: #ccc;
}
Link 到 Fiddle
这是使内容动态化的一种简单方法,将浮动设置为侧边栏。 但我认为你需要做更多的改变,将页脚设置在底部(页脚总是在页面的末尾),这样你可以让事情看起来更有吸引力。
希望这对您有所帮助,让我知道 ;)
首先重置:
* {margin:0;padding:0}
在 body, html
标签和主容器上使用 100%
后 .container
:
html,body, .container {
height:100%;
}
然后使用calc()
设置尺寸,如:
.main{
height: calc(100% - 50px);
width: calc(100% - 200px);
overflow: hidden;
background-color: #aabbcc;
}
DemoFiddle
您可以对主导航和导航使用粘性页脚和绝对和边框,并使用填充,因为它们具有定义的大小:
* {
padding: 0;
margin: 0;
}
html, body {
height: 100%;
}
.main, .nav {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.container {
min-height: 100%;
margin-bottom: -50px;
overflow: hidden;
}
.nav {
position: absolute;
left: 0;
padding-bottom: 50px;
top: 0;
width:200px;
height: 100%;
background: #1abc9c;
z-index: 1;
}
.main {
top: 0;
width: 100%;
height: 100%;
padding: 0 0 50px 200px;
background: #3498db;
height: 100%;
position: absolute;
left: 0;
}
.container:after {
content: "";
display: block;
}
.footer, .container:after {
height: 50px;
}
.footer {
position: relative;
background-color: #e74c3c;
z-index: 2;
width: 100%;
}
<div class="container">
<div class="nav">
<ul>
<li>Link 1</li>
<li>Link 2</li>
<li>Link 3</li>
</ul>
</div>
<div class="main">
Text...
</div>
</div>
<div class="footer">
Footer
</div>