`
zsuczw
  • 浏览: 51740 次
  • 性别: 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两列布局实现方式总结

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

    左侧固定宽度,右侧自适应宽度的CSS布局

    标题中所涉及的知识点是如何使用CSS来实现左侧固定宽度,而右侧自适应宽度的布局设计。这在网页设计中是一种常见的需求,尤其是在构建分栏布局时。左侧通常用于导航菜单或固定栏,右侧则显示主要内容。描述部分提到...

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

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

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

    本示例探讨了如何使用HTML和CSS实现一个两列布局,其中左侧宽度固定,右侧则自适应剩余空间。以下是对这两种方法的详细解释: **实现一:利用浮动(Float)** 在第一种方法中,我们主要利用CSS的`float`属性来实现...

    典型的三行两列居中高度自适应布局

    由于左右两列使用了浮动布局,它们会随着内容的增加而扩展,而`#container`和`#mainbg`的宽度固定,因此可以保证在任何情况下都能保持两列并排显示。 总的来说,这个布局实例巧妙地利用了CSS的浮动、居中对齐和内...

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

    1. 固定宽度与自适应宽度布局:文件中提到的“左侧固定宽度,右侧自适应屏幕宽度”的布局是一个常见的布局需求。实现这种布局通常有两种方法,第一种是使用浮动(float)来控制左侧元素固定宽度,并使用 margin-left...

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

    在描述中提到了两种不同的两列布局方式:右侧固定,左侧自适应宽度;以及左侧固定,右侧自适应宽度。 1. 右侧固定,左侧自适应宽度的布局: 在这个例子中,整体容器使用了一个`&lt;div&gt;`元素,并设置了`width:90%; ...

    横向两列布局(左列固定,右列自适应)的4种CSS实现方式

    本文将详细介绍四种CSS方法来实现这种布局,即左列固定宽度,右列自适应宽度。 1. **使用绝对定位(Absolute Positioning)** 这种方法是通过设置`.side`为绝对定位,使其固定在左侧,然后设置`.main`的左边距(`...

    Swift自适应布局(Adaptive Layout)教程

    1. 属性设置:在Interface Builder或代码中,你可以直接为UI元素添加约束,设定约束的属性包括:顶部、底部、左边、右边、宽度、高度以及中心对齐等。 2. Visual Format Language(VFL):使用字符串来表示界面元素...

    CSS网页布局,html布局

    这些章节涵盖了固定宽度和自适应宽度的组合,如左右两列布局(一列固定,一列自适应)、双列居中等。利用浮动(`float`)和清除(`clear`)属性,可以创建复杂的并排布局。 五、导航菜单 第九至十四章重点讲述了...

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

    本文将详细讲解如何使用CSS实现两列布局和三列布局,以及如何实现宽度和高度的自适应。 首先,我们来看一种基于BFC(块格式化上下文,Block Formatting Context)原理的三列布局方法。BFC是一个独立的渲染区域,它...

    CSS左右两列自适应高布局示例代码

    通过设置左右两列的宽度,以及浮动布局,可以使得左右列宽度固定,并且在内容上产生视觉上的对齐效果。如果右侧内容较左侧少很多,它会直接显示在左侧内容下方,实现高度自适应。 然而,需要注意的是,单纯的浮动...

Global site tag (gtag.js) - Google Analytics