`
zsuczw
  • 浏览: 51302 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

右边固定宽度+左边自适应宽度的两列布局方法

阅读更多
一般的门户网站都采用了一种典型的960px的固定宽度布局,但现在的浏览器分辨率越来越大,有时候我们需要尽量利用屏幕的空间,特别是在做业务系统的时候。一种典型的场景是右边的导航栏固定宽度,而我们希望左边的宽度可以随着浏览器的宽度而自动适应。

我们可以用js轻易做到这一点,但是我们希望只用css,这样更简洁。下面就介绍一下如果通过css的负边距(negative margin)做到这一点。

首先看下面的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>一边固定宽度和另外一边自适应宽度的布局</title>
<style type="text/css">
	body {
		padding: 0;
		margin: 0;
	}
	
	#wrapper {
		width: 960px;
		border: 1px solid #333;
		margin: 0 auto;
	}
	
	#nav {
		width: 200px;
		float: right;
	}
	
	#content-wrapper {
		margin-right: -200px;
		float: left;
		width: 100%;
	}
	
	#content {
		margin-right: 200px;
		padding: 0 10px;
	}
	
	.clearfix:after {
		height: 0;
		content: ".";
		display: block;
		clear: both;
		visibility: hidden;
	}
</style>
</head>
<body>
	<div id="wrapper" class="clearfix">
		<div id="content-wrapper">
			<div id="content">
				<p>
				中新网1月12日电(记者贾靖峰)中国银监会有关负责人12日表示,将在风险可控、商业可持续前提下支持保障性住房建设,他并透露,2010年11月末经济适用房开发贷款同比劲增逾三成,经济适用房个人购房贷款则年劲增逾四成,但保障性住房贷款仍存在“风险缓释不足、还款保障难以落实”等问题。
				</p>
								
			</div>
		</div>
		<div id="nav">
			<p>菜单1</p>
			<p>菜单2</p>
			<p>菜单3</p>
			<p>菜单4</p>
		</div>
	</div>
</body>
</html>


以上代码的关键技术部分可以表述为:将一个宽度为100%的div的外边距(left-margin or right-margin)设置为某个负值,然后将其第一个子div的外边距(与父容器的边距同方向)设置为对应的正值,那么这个div就可以浮动并且自适应浏览器宽度。

这个例子还使用了一个css“hack”技术,那就是使用psuedo css清除浮动造成的父容器高度不会自动撑大的问题。
分享到:
评论

相关推荐

    css实现右侧固定宽度 左侧宽度自适应

    主要介绍了css实现右侧固定宽度 左侧宽度自适应,这种布局比较常见,博客园很多默认主题就是这种。一般情况下,这种布局中宽度固定的区域是侧边栏,而自适应的区域是主体内容区——相信把侧边栏搞成自适应的人很少吧...

    学习DIV+CSS网页布局之两列布局

    1、宽度自适应两列布局  两列布局可以使用浮动来完成,左列设置左浮动,右列设置右浮动,这样就省的再设置外边距了。  当元素使用了浮动之后,会对周围的元素造成影响,那么就需要清除浮动,通常使用两种方法。...

    CSS两列布局实现方式总结

    两列布局中,以主列(main)是自适应宽度,子列(sidebar)是固定宽度的情形最为常见。今天就来好好探讨一下如何实现这种定宽+自适应的两列布局。 1. absolute + margin 方式 首先想到的是利用 absolute + margin 的方式...

    浅析两列自适应布局的3种思路

    前面已经介绍过单列定宽单列自适应的两列布局,而两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式。本文将从float、table和flex来介绍两列自适应布局的3种思路。 思路一: float 在单列定宽单列...

    HTML实现2列布局(左侧宽度固定,右侧自适应)的方法示例

    HTML实现2列布局,左侧宽度固定,右侧自适应 实现一: &lt;style&gt; body, html{padding:0; margin:0;} // 根据CSS定位,利用浮动或绝对定位,使左侧的块元素脱离常规文档流,可以与右边块元素并列 div:nth-of-...

    左定宽度右自适应宽度并且等高布局实现代码

    今天有位朋友一早转来一个有关于CSS布局的面试题,需要解决,花了点时间写...左边固定,右边自适应布局,这个第一点应该来说是非常的容易,实现的方法也是相当的多,那么就可以说第一条要求已不是什么要求了; 左右两列

    CSS布局实例代码 两列布局实例

    CSS两列布局,右侧固定,左侧自适应宽度.

    CSS三栏布局探讨——中间固定宽度两边自适应宽度

    下面和大家一起探讨和学习了一种用div+css进行的三列(三栏)布局,而且是中间固定左右两边自适应宽度,听起来蛮有意思的。因为以前只是碰到过,左右两列固定而中间自适应的运用

    CSS实现页面两列布局与三列布局的方法示例

    主要介绍了CSS实现页面两列布局与三列布局的方法示例,包括宽度与高度的自适应的示例,需要的朋友可以参考下

    学习DIV+CSS网页布局之三列布局

     三列布局的原理和两列布局的原理是一样的,只不过多了一列,只需给宽度自适应两列布局中间再加一列,然后重新计算三列的宽度,就实现了宽度自适应的三列布局。  同样的道理,更多列的布局,其实和两列、三列的...

    CSS标准网页布局开发指南 源文件

    zi-two-3.html ----6.8.4左右均能自适应的两列布局。 zi-three-1.html ----6.8.5三列布局中有两列内容固定。 zi-three-2.html ----6.8.6三列布局中有一列内容固定。 zi-three-3....

    antd Form组件行并列显示 Form表单属性为inline时,表单组件宽度问题

    Form标签 layout属性设置为’inline’ 时 下拉组件宽度没有自适应: // 方法1:用Row + Col 定义自己需要的宽度,把layout属性设置为'horizontal', const formLayout = { labelCol: { span: 4 }, wrapperCol: { ...

    web前端开发中常见的多列布局解决方案整理(一定要看)

    本布局模式一共分为三列,其中两列宽度固定,一列宽度随内容宽度而改变。简易实现代码如下: 两列定宽加一列自适应 本案例中每一列高度为自适应,即高度和内容高度一致,左列和中列宽度为100px,右列宽度为自适应,...

    《CSS设计彻底研究》【中文PDF+源代码】

    在《CSS设计彻底研究》中对设计中常用的网页元素和布局方式都给出详细的分类和归纳,并讲解了完整的解决方法,主要包括各种导航菜单(水平的、竖直的、固定宽度的、自适应宽度的、下拉的等),Tab面板、伸缩面板和...

    CSS网站布局实录 (第二版)PDF版

    3.6 两列右列宽度自适应 3.7 二列固定宽度居中 3.8 三列浮动中间列宽度自适应 3.9 高度自适应 3.10 盒模型详解(.Box Model) 3.10.1 什么是盒模型 3.10.2 盒模型的细节 3.10.3 上下margin叠加问题 3.10.4 左右margin...

    《CSS标准网页布局开发指南》附赠光盘

    zi-two-3.html ----6.8.4左右均能自适应的两列布局。 zi-three-1.html ----6.8.5三列布局中有两列内容固定。 zi-three-2.html ----6.8.6三列布局中有一列内容固定。 zi-three-3....

    微信小程序通过js实现瀑布流布局详解

    瀑布流 – 小程序中数据列表或者图片展示难免高度不一,而我们一般固定宽度,让其高度自适应,并无缝对接。如下图: 瀑布流的两种做法: css: 在父元素上使用column-count: 2也可以做到两列排版。但column-count:...

Global site tag (gtag.js) - Google Analytics