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月前
|
前端开发 算法 Java
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
(CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
156 0
|
3月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
311 1
|
7月前
|
前端开发
用 CSS Grid 轻松构建复杂布局
用 CSS Grid 轻松构建复杂布局
349 83
|
6月前
|
Web App开发 前端开发 数据可视化
用 CSS Grid 实现高效布局的 3 个实战技巧
用 CSS Grid 实现高效布局的 3 个实战技巧
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
Web App开发 前端开发
CSS布局 -- 左侧定宽,右侧自适应
原文:CSS布局 -- 左侧定宽,右侧自适应   左侧定宽,右侧自适应 有很多种方法可以实现 缩小窗口试试看?   方案一: 左边左浮动,右边加个margin-left 查看 demo  DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.
1270 0
|
7月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
7月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。

热门文章

最新文章