css实现两栏布局

690 阅读2分钟

css实现两栏布局

两栏布局指的是在一个容器(container)中,其中一侧定宽布局,而另一侧自适应,下面采用几种不同的方法来实现。

html部分

<!DOCTYPE html>
<html>
<head>
	<title>两栏布局</title>
</head>
<body>
	<div class="container">
		<div class="left">这里是左边</div>
		<div class="right">这里是右边</div>
	</div>
</body>
</html>

1. float

两个div就能实现(可以去掉<div class="container"> </div>)。只需将左边div设置为浮动,并加上宽度,就可以实现两栏布局。

代码如下:

	<style type="text/css">
		.left{width: 50%;
			height: 500px;
			background-color: pink;
			float: left;}
		.right{height: 500px;
			background-color: blue;}
	</style>

2. absolute

需要三个div来实现。一个为父元素,另外两个作为左、右子元素,将父元素设为相对定位,左右两个子元素设置为绝对定位,给左边的子元素设置宽度,将右边子元素设置left为左边子元素的宽度值,right设置为0,就可以实现两栏布局。

代码如下:

<style type="text/css">
		.container{position: relative;
			width: 100%;
			height: 500px;}
		.left{position: absolute;
			width: 50%;
			height: 500px;
			background-color: pink;}
		.right{position: absolute;
			left: 50%;
			right: 0;
			height: 500px;
			background-color: blue;}
</style>

3. flex布局

使用flex布局。需要三个div,一个为父元素,另外两个作为左、右子元素。父元素设置为display:flex;左右两边子元素为flex:1;(即左右两边宽度比为1:1)也可以设置为固定宽。即可实现两栏布局。

代码如下:

<style type="text/css">
		.container{display: flex;
			width: 100%;
			height: 500px;}
		.left{
			flex: 1;
			height: 500px;
			background-color: pink;}
		.right{
			flex: 1;
			height: 500px;
			background-color: blue;}
	</style>

4. grid布局

<style type="text/css">
		.container{display: grid;
			width: 100%;
			height: 500px;
			grid-template-columns: 50% 50%;//该属性可以设置每一列的宽度}
		.left{
			background-color: pink;}
		.right{
			background-color: blue;}
	</style>

也可使用grid布局。这种方法也需要三个div.只需要在父元素上设置grid-template-columns: 50% 50%;即可。同样也可以设置为固定宽度。

5. table布局

	<style type="text/css">
    		.container{display: table;
    			width: 100%;
    			height: 500px;}
    		.container div{display: table-cell;}
    		.left{width: 50%;
    			background-color: pink;
    		}
    		.right{width: 50%;
    			background-color: blue;
    		}
    	</style>

以上几种方法实现两栏布局的结果均为: