我想要做的事情听起来非常简单,但由于某些原因我无法使其工作......我想要一个具有特定大小的块元素,它具有三个子块元素:标题,中心区域和页脚。它必须具有以下特征:
让我们来看看这个示例代码:
<div style="width: 512px; height: 512px">
<div class="head">This is the header</div>
<div class="center">This is the center area</div>
<div class="foot">This is the footer</div>
</div>
最后它应该是这样的:
+--------------------------+
| This is the header |
+--------------------------+
| This is the center area |
| |
| |
| |
| |
| |
+--------------------------+
| This is the footer |
+--------------------------+
我该怎么做?即使有一个老式的桌子,并且对于中心单元使用height =“100%”,我也无法使它工作,因为桌子太大而在IE7中(中心区域是512px,所以桌子本身是512px加上高度页眉和页脚单元格。
我正在搜索的是一些用于制作上述HTML代码的CSS代码(或者任何替代HTML代码,甚至允许使用真正的HTML表格),如上所述并匹配上面列出的所有标准。
答案 0 :(得分:1)
这是另一个小提琴...... http://jsfiddle.net/zDfHs/
内容的高度不会达到100%,但您可以使用JavaScript更改内容。目前,我不知道如何通过纯CSS来实现这一目标。
我希望这会有所帮助 赫里斯托斯
看看这个小提琴:http://jsfiddle.net/qrUAy/
马修詹姆斯泰勒的网站实际上非常好,他的布局绝对不是骗局:)但你有权利对你的意见。无论如何,这是简单的标题/内容/页脚布局......http://matthewjamestaylor.com/blog/ultimate-1-column-full-page-pixels.htm
我希望这会有所帮助 赫里斯托斯
答案 1 :(得分:0)
如有必要,只需将表格的宽度设置为98%。
您没有发布CSS代码。您是否尝试设置head
和foot
类的高度?或者,只需让它们按内容大小。
结论:您的HTML看起来不错。 (您描述的唯一问题涉及使用HTML的表格,您甚至没有发布。)您发布的HTML有什么问题?
答案 2 :(得分:0)
您可以使用相对和绝对定位。使内容的浏览器窗口高度为100%;绝对将标题放在屏幕顶部;同样绝对将页脚放在页面底部;然后在内容<div>
内的另一个<div>
内设置margin-top
与标题相同的高度,padding-bottom
与页脚的高度相同。
您的HTML将是这样的:
<html>
<head>
...
</head>
<body>
<div id="container">
<div id="header">
</div>
<div id="content">
<div class="inner">
<!-- place margins on this element -->
</div>
</div>
<div id="footer">
</div>
</div>
</body>
<html>
然后你的CSS:
html, body {
height: 100%;
}
#container {
position: relative;
height: auto;
max-height: 100%;
}
#content {
position: absolute;
height: auto;
max-height: 100%;
}
#header {
position: absolute;
width: 100%;
height: 150px;
top: 0px;
left: 0px;
}
#footer {
position: absolute;
width: 100%;
height: 150px;
left: 0px;
bottom: 0px;
}
#content .inner {
margin-top: 150px;
margin-bottom: 150px;
}
这个 是未经测试的,并且是袖手旁观的,因此可能需要进行一些调整,但这是前提。
此外,我更喜欢使用ID作为页眉,页脚,主要内容包装等元素,理论上只有页面上的每一个都是。
答案 3 :(得分:0)
多余的我操作的例子有太多的标记。尝试:
<style>
.box {
width: 512px; height: 512px;
position:relative;
border:1px solid black;
}
.head {
background:white;
border:1px solid red;
}
.foot {
width:100%;
background:white;
position:absolute;
bottom:0;
border:1px solid blue;
}
</style>
<div class="box">
<div class="head">This is the header</div>
<p>The is the center area</p>
<div class="foot">This is the footer</div>
</div>
答案 4 :(得分:0)
修改为包含图像作为示例:
<style>
.box {
width: 512px; height: 512px;
background:url("http://www.desktops-wallpapers.com/Exports%20from%20Aperture/Trees/1280_1024/row_of_pine_trees.jpg");
position:relative;
border:1px solid black;
}
.head {
background:white;
border:1px solid red;
}
.foot {
width:100%;
background:white;
position:absolute;
bottom:0;
z-index:2;
border:1px solid blue;
}
</style>
<div class="box">
<div class="head">This is the header</div>
<p>The is the center area</p>
<div class="foot">This is the footer</div>
</div>
答案 5 :(得分:0)
我正在研究这个问题并发现这个链接描述了一个类似于你想要的东西的技巧。唯一不同的是,如果内容大于页面大小,则内容将滚动。不过,我发现它很有用,并且会为我的网页执行此操作。
http://blog.stevensanderson.com/2011/10/05/full-height-app-layouts-a-css-trick-to-make-it-easier/
body { margin: 0 }
.row, .col { overflow: hidden; position: absolute; }
.row { left: 0; right: 0; }
.col { top: 0; bottom: 0; }
.scroll-x { overflow-x: auto; }
.scroll-y { overflow-y: auto; }
.header.row { height: 122px; top: 0; background-color: red;}
.body.row { top: 122px; bottom: 24px; background-color: yellow;}
.footer.row { height: 24px; bottom: 0; background-color: green;}
</style>
</head>
<body>
<body>
<div class="header row">
<h2>My header</h2>
</div>
<div class="body row scroll-y">
The body
</div>
<div class="footer row">
My footer
</div>
</body>
</body>
</html>