html – 全高和全宽CSS布局

前端之家收集整理的这篇文章主要介绍了html – 全高和全宽CSS布局前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种方法来创建一个仅CSS(无 JavaScript)布局,其中有5个区域如下所示:
  1. ┌────────────────────┐
  2. H
  3. ├────┬────────┬──────┤
  4. A B C
  5. ├────┴────────┴──────┤
  6. F
  7. └────────────────────┘

(仅当您的字体具有Unicode框线绘图字符时,上图才会正确显示.)

布局必须完全填写网络浏览器中的可用空间(高度和宽度).
A,B,C必须具有相同的高度; H和F必须具有相同的宽度.也就是说,除固定利润之外,区域之间不能有差距.
区域内的元素应该知道他们的父母的大小;这意味着,如果我放置

  1. <textarea style="width:100%;height:100%">Just a test</textarea>

在一个区域内,它将延伸到该区域的全宽和高度.
在浏览器窗口的右侧不应有滚动条(因为H,C和F的高度恰好与浏览器客户区的高度相加).

如果您使用的是< table>,则这是非常容易的做布局.但是我继续阅读,使用表格进行格式化是一件坏事,CSS是要走的路.

我知道有W3C工作组通过功能扩展CSS标准,使上述布局非常容易实现.然而,这些标准扩展目前尚未被大多数浏览器实现;我需要一个适用于当前浏览器的解决方案.

我一直在寻找包含CSS样式样本的许多网页,但是没有一个可以做上述的描述.大多数这些布局既不是全高度的,或者列具有不同的高度,或者它们需要JavaScript.

因此,我的问题是:是否可以创建上述布局,只使用CSS(没有JavaScript,没有人造柱,没有< table>)?当然,该解决方案应该与当前的Web浏览器配合使用.

编辑:根据Gilsham提供的解决方案,我设法编写一个示例页面,生成所需的仅CSS布局(使用Firefox 3.5.5和IE8进行测试):

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style type="text/css">
  5. html,body{
  6. height:100%;
  7. margin:0;
  8. padding:0;
  9. border:0;
  10. }
  11.  
  12. div{
  13. margin:0;
  14. border:0;
  15. }
  16.  
  17. textarea {
  18. margin:0;
  19. border:0;
  20. padding:0;
  21. height:100%;
  22. width:100%;
  23. }
  24.  
  25. .content{
  26. display:table;
  27. width:100%;
  28. border-collapse:separate;
  29. height:80%;
  30. }
  31.  
  32. .Col{
  33. display:table-cell;
  34. width:30%;
  35. height:100%;
  36. }
  37.  
  38. #header,#footer{
  39. height:10%;
  40. position:relative;
  41. z-index:1;
  42. }
  43.  
  44. </style>
  45. </head>
  46. <body>
  47. <div id="header"><textarea style="background-color:orange;">H Just a test</textarea></div>
  48. <div class="content">
  49. <div id="left" class="Col"><textarea style="background-color:lightskyblue;">A Just a test</textarea></div>
  50. <div id="center" class="Col"><textarea style="background-color:green;">B Just a test</textarea></div>
  51. <div id="right" class="Col"><textarea style="background-color:lime;">C Just a test</textarea></div>
  52. </div>
  53. <div id="footer"><textarea style="background-color:yellow;">F Just a test</textarea></div>
  54. </body>
  55. </html>

一个缺点是必须以特定的顺序指定div,这对搜索引擎优化和屏幕阅读器是不利的;但是,对于预期的Web应用程序来说,这并不重要.

/弗兰克

解决方法

http://jsfiddle.net/aGG3V/

设置页眉和页脚的高度,你必须设置它的风格以及.content的填充和边距(这是负版本)

猜你在找的HTML相关文章