我一直在努力让这项工作工作2天,并阅读了许多示例和堆栈溢出问题。我是html和css的新手,这是我的第3天。任何有关我所做错事的提示或见解都会受到高度赞赏,以及一般性评论或批评。
我试图让左侧的蓝色窗格延伸整个页面的长度,而不仅仅是浏览器视口的高度。
谢谢
#leftPane {
position: absolute;
width: 200px;
margin:0px;
padding:0px;
height: 100%;
background-color: #0e365b;
}
#rightPane {
position: absolute;
top:0px;
left:200px;
margin:0px;
padding:0px;
background-color: #EEEEEE;
width: 900px;
height: 100%;
}
答案 0 :(得分:3)
问题是,所有元素(leftpane,rightpane,header和mainContent)都位于 absolute 。 绝对定位的元素将从正常流中移除,并相对于位置不是 static 的第一个父元素定位(在这种情况下," html&#34 ;)
[提示:打开firebug并检查页面的布局。 "主体"没有达到任何高度。]
这就是为什么提供高度:100%给出容器的默认高度而不是文档的完整高度
<强>解决方案:强>
正如@Prachit上面回答的那样,合法的解决方法是将将绝对定位的元素封装在相对定位的容器中,因为相对定位的元素相对于其正常位置定位,
您可以从this教程获得有关定位的更多信息。
喝彩!
答案 1 :(得分:2)
您需要container
,否则leftpane
无法知道rightpane
扩展了多少。因此,container
到位后,container
将展开rightpane
,而leftpane
是container
的子对象,它会获得height
当设置为100%
并进行适当的定位时。
/* Lightest Blue: #4096e5 (nav boxes)
Darker Blue: #195e9f (nav boxes roll over)
Darker Blue: #043d71 (children roll over)
Darkest Blue: #0e365b (left pane)
Off-white: #EEEEEE (right pane background)
*/
* {
font-family: "Helvetica", sans-serif;
}
body {
margin: 0px;
padding: 0px;
background-color: #EEEEEE;
}
#container {
position: relative;
height: auto;
}
#leftPane {
color: white;
text-align: justify;
}
#leftPane > p {
margin: 10px;
}
#leftPane {
position: absolute;
width: 200px;
margin: 0px;
padding: 0px;
height: 100%;
background-color: #0e365b;
}
#leftPane h1,
h2,
h3 {
text-align: center;
margin: 10px;
padding: 0px;
text-shadow: 5px 5px 10px #000;
}
#rightPane {
position: relative;
top: 0px;
left: 200px;
margin: 0px;
padding: 0px;
background-color: #EEEEEE;
width: 900px;
height: 100%;
}
#header {
position: absolute;
top: 0px;
left: 0px;
height: 40px;
}
#nav {
list-style: none;
overflow: hidden;
z-index: 5;
}
#nav li,
ul {
float: left;
margin: 0px;
padding: 0px;
}
#nav a:link,
a:visited,
.top {
display: block;
color: #FFFFFF;
background-color: #4096e5;
padding: 5px;
text-decoration: none;
text-shadow: 1px 1px 1px #000;
}
#nav a.top:link,
a.top:visited,
.top {
width: 180px;
font-weight: bold;
text-align: center;
}
#nav a.sub:link,
a.sub:visited {
text-align: left;
}
#nav .divider {
border-right: 1px black dashed;
}
#nav a:hover,
span:hover {
background-color: #195e9f;
text-decoration: none;
}
#nav ul li a:hover {
background-color: #043d71;
}
#nav ul {
list-style: none;
position: absolute;
left: -9999px;
}
#nav ul li {
background: #195e9f;
float: none;
border-top: 1px black dashed;
}
#nav ul a {
white-space: nowrap;
}
#nav li:hover ul {
left: 0px;
z-index: 5;
position: absolute;
width: 100%;
}
#nav li:hover a,
li:hover span {
/* These create persistent hover states, meaning the top-most link
stays 'hovered' even when your cursor has moved down the list. */
background: #195e9f;
}
#nav li:hover ul a {
/* The persistent hover state does however create a global style for
links even before they're hovered. Here we undo these effects. */
text-decoration: none;
}
#mainContent {
position: relative;
left: 0px;
top: 40px;
margin: 10px;
}
&#13;
<body>
<div id="container">
<div id="leftPane">
<h2>Title<br>Section</h2>
<p>some more text, this should wrap.</p>
</div>
<div id="rightPane">
<div id="header">
<ul id="nav">
<li>
<span class="top divider">Projects</span>
<ul>
<li><a class="sub lastA" href="#">One</a>
</li>
<li><a class="sub lastA" href="#">Two</a>
</li>
<li><a class="sub lastA" href="#section3">Three</a>
</li>
<li><a class="sub lastA" href="#">Four</a>
</li>
</ul>
</li>
<li>
<span class="top divider">Examples</span>
<ul>
<li><a class="sub lastA" href="#">Data Structures</a>
</li>
</ul>
</li>
<li><a class="top" href="#">Blog</a>
</li>
</ul>
</div>
<div id="mainContent">
There are a few interesting things here that should be noted.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<a name="section3">Begin Section 3</a>
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
<br>.
</div>
</div>
</div>
</body>
&#13;
答案 2 :(得分:1)
请参阅此处:here
<div><!-- make a <div> to hold everything in.. -->
<div style="width:125;height:100%;">blah blah blah</div>
<div style="height:100%;">blah blah blah</div>
</div>