css布局之左侧固定右侧自适应布局

简介:

 1.固定高度

 
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  5. <title>左侧固定+右侧栏自适应宽度</title> 
  6. <style type="text/css"> 
  7.     margin:0; 
  8.     padding:0; 
  9. #mainBody 
  10.  
  11.     margin:0 auto; 
  12.     border:1px solid #ccc; 
  13.     padding:5px; 
  14. #leftCol 
  15.     width:120px; 
  16.     height:400px; 
  17.     border:1px solid #ccc; 
  18.     background-color:#f0f0f0; 
  19.     position:absolute; 
  20. #rightCol 
  21.     border:1px solid #ccc; 
  22.     background-color:#f0ffff; 
  23.     height:400px; 
  24.     margin-left:127px; 
  25. </style> 
  26. </head> 
  27.  
  28. <body> 
  29.     <div id="mainBody"> 
  30.         <div id="leftCol"> 
  31.         </div> 
  32.         <div id="rightCol"> 
  33.         </div> 
  34.     </div> 
  35. </body> 
  36. </html> 

截图:

 

这里只截了IE6的。

注:如果布局元素不是body子级,加个position:relative;即可。

 

除了使用定位以外,用浮动float:left也可以,原理都是脱离文档流,把控件留给其他元素。

 

 

但是有个问题, 由于absolute使得外面容器的高度取决于那个自适应的元素,比如我把高度改为300px看一下。

 

2.我们来拿float:left;这个方案讨论一下

我们知道对于浮动元素,脱离文档流,父元素捕捉不到其高度height,所以如果float的那个元素比较高,势必超出容器的边界。

我们思考,如果富容器也是float,是不是就可以摆脱这种现状,但是如果无限制的float,势必需要顶层做个清理。

所以我们采用多套一层float容器的方式实现:

我们上代码:

 

 
  1. <!DOCTYPE HTML> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  5. <title>左侧固定+右侧栏自适应宽度</title> 
  6. <style type="text/css"> 
  7.     margin:0; 
  8.     padding:0; 
  9. body 
  10.     padding:10px; 
  11. #mainBody 
  12.     width0:950px; 
  13.     margin:0 auto; 
  14.     border:1px solid #ccc; 
  15.     padding:5px; 
  16.     position0::relative; 
  17.     overflow:hidden; 
  18.     height:1%; 
  19. #layoutContainer 
  20.     float:left; 
  21.     width:100%;  
  22. #leftCol 
  23.     width:120px; 
  24.     height:200px; 
  25.     border:1px solid #ccc; 
  26.     background-color:#f0f0f0; 
  27.     float:left; 
  28. #rightCol 
  29.     border:1px solid #ccc; 
  30.     background-color:#f0ffff; 
  31.     height:300px; 
  32.     margin-left:127px; 
  33. </style> 
  34. </head> 
  35.  
  36. <body> 
  37.     <div id="mainBody"> 
  38.         <div id="layoutContainer"> 
  39.             <div id="leftCol"> 
  40.             </div> 
  41.             <div id="rightCol"> 
  42.             </div> 
  43.         </div> 
  44.     </div> 
  45. </body> 
  46. </html> 

上图:

 

 

注:解决可能的ie莫名白条问题。

对ie自适应列单独设定:

*margin-left:5px;/*两列之间的间距*/ *float:left;







 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/525082,如需转载请自行联系原作者

相关文章
|
3天前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
3天前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
2月前
|
前端开发 安全 容器
CSS如何优雅实现卡片多行排列布局?
【8月更文挑战第24天】CSS如何优雅实现卡片多行排列布局?
42 3
|
2月前
|
前端开发 开发者 容器
探索现代Web开发中的CSS Grid布局技术
【8月更文挑战第29天】在数字时代的浪潮中,网页设计不断进化以适应日新月异的用户需求。CSS Grid布局技术作为一项革新性的前端工具,为设计师和开发者提供了前所未有的布局能力。本文旨在通过深入浅出的方式介绍CSS Grid的核心概念、基本用法以及在实际项目中的应用,帮助读者快速掌握这一强大的网页布局工具。
41 3
|
2月前
|
前端开发 开发者 容器
【Web布局的革命】探索CSS Grid栅格系统,打造未来网页设计!
【8月更文挑战第25天】在网页设计领域,布局至关重要。传统的布局方法难以满足复杂需求,CSS Grid 栅格系统因此诞生。它是一种二维布局模式,能直接控制行和列,简化复杂网格的设计。通过定义 `display: grid;` 创建网格容器,并利用 `grid-template-columns` 和 `grid-template-rows` 设置行列尺寸,轻松实现响应式布局。此外,CSS Grid 支持高级功能,如网格区域划分和对齐设置,极大提升了布局的灵活性和创意空间。随着浏览器兼容性的增强,CSS Grid 必将成为未来网页设计的关键技术之一。
51 1
|
2月前
|
前端开发
CSS Grid 布局:span 关键字
CSS Grid 布局:span 关键字
40 0
|
2月前
|
前端开发 容器
css中弹性布局使用方法
css中弹性布局使用方法
37 0
|
前端开发 JavaScript 容器
|
2月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
HTML+CSS 实现通用的企业官网页面(记得收藏)
HTML+CSS 实现通用的企业官网页面(记得收藏)