《 css布局》

1table布局

利用表格来布局,可以内容自动居中。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
.a{
height: 100px;
width: 100px;
}
.b{
	background-color: red;
}
.c{
	background-color: blue;
}


	</style>

</head>
<body>
<table class="a">
<tr>
<td class="b">1</td>
<td class="c">2</td>
</tr>
</table>
	
</body>
</html>

代码运行结果如下

2盒子布局

2.1盒子模型介绍

css中,所以页面元素都在一个矩形盒子内,这个矩形被称为盒子。盒子描述了元素及属性在页面中布局中所占空间的大小,因此盒子可以影响其他元素的大小和位置。

2.2div

<div>标签定义HTML文档中的一个分割区块或者一个区域部分。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
.box{
	height: 200px;
	width: 200px;
	background-color: blue;
	}

	</style>

</head>
<body>
<div class="box">
这是一个div
</div>
	
</body>
</html>

代码运行结果如下

要注意div元素是块级元素,块级元素是在页面上独占一行。如下所示。

html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
.box{
	height: 200px;
	width: 200px;
	background-color: blue;
}
.box1{
height: 200px;
width: 200px;
background-color: pink;
}


	</style>

</head>
<body>
<div class="box">
这是一个div
</div>
<div class="box1">
这是第二个div
</div>
	
</body>
</html>

 代码运行结果如下

行内元素是在页面上排在一行内。<a>  <i>等都是行内元素。可以利用display的取值来实现行内和块级元素之间的相互装换。display: inline使块级元素转换成行内元素,display:block使行内元素转换成块级元素。

3浮动布局

通过float的取值来进行布局。

fl0at:none默认值,不浮动。
float:left左浮动。
float:right右浮动。
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	div{

		width: 200px;
		height: 200px;
		/*float: left;*/
        float:right;
	}
	
.box{

	background-color: blue;

}
.box1{

background-color: pink;
}
	</style>

</head>
<body>
<div class="box">
这是一个div
</div>
<div class="box1">
这是第二个div
</div>
	
</body>
</html>

左浮动会使后面的元素混乱。如下所示。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	div{

		width: 200px;
		height: 200px;
		
	}
	
.box{

	background-color: blue;
	float: left;

}
.box1{

background-color: pink;
float: left;
}
.box2{

	background-color: green;
}

	</style>


</head>
<body>
<div class="box">
这是一个div
</div>
<div class="box1">
这是第二个div
</div>
<div class="box2">
这是第三个div
</div>
	
</body>
</html>

代码运行结果如下

由上可以看出左浮动使后面的第三个div的样式出了问题。我们用clear来清除上面左浮动带来的影响。

clear:none 默认值,允许浮动
clear:left清除左浮动
clear:right清除右浮动
clear:both清除两边浮动
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	div{

		width: 200px;
		height: 200px;
		
	}
	
.box{

	background-color: blue;
	float: left;

}
.box1{

background-color: pink;
float: left;
}
.box2{

	background-color: green;
	clear:left;
}

	</style>


</head>
<body>
<div class="box">
这是一个div
</div>
<div class="box1">
这是第二个div
</div>
<div class="box2">
这是第三个div
</div>
	
</body>
</html>

代码运行结果如下

4定位布局

定位布局包括相对定位和绝对定位等。相对定位对象不从文档流里面分离,通过设置topleftrightbottom这四个方向的值进行定位(相较于自身的定位)。绝对定位将对象从文档流分离出来,通过设置topleftrightbottom这四个方向的值进行定位(相较于父级的定位),如果没有这样的父级,默认的父级是body。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	div{

		width: 100px;
		height: 100px;
		
	}
	
.box{

	background-color: blue;


}
.box1{

background-color: pink;
position: absolute;
top: 100px;
left: 100px;
}
.box2{

	background-color: green;
	position: relative;
	top: 100px;
	left: 100px;
	
}

	</style>


</head>
<body>
<div class="box">
这是一个div
</div>
<div class="box1">
这是第二个div
</div>
<div class="box2">
这是第三个div
</div>
	
</body>
</html>

代码运行结果如下

5弹性盒子

元素表现为 flex 框时,它们沿着两个轴来布局:

**主轴(main axis)**是沿着 flex 元素放置的方向延伸的轴(比如页面上的横向的行、纵向的列)。该轴的开始和结束被称为 main start 和 main end。
**交叉轴(cross axis)**是垂直于 flex 元素放置方向的轴。该轴的开始和结束被称为 cross start 和 cross end。
设置了 display: flex 的父元素被称之为 flex 容器(flex container)。.container
在 flex 容器中的弹性盒子元素被称之为 flex 项(flex item)。

flex-direction
指定了弹性盒子(弹性容器)中子元素的排列方式
flex-wrap
指定了弹性盒子(弹性容器)中子元素的换行方式
justify-content
修改了 flex-wrap 属性的行为,类似 align-items, 但不是设置子元素的对齐,
而是设置行对齐
align-items
设置了弹性盒子子元素在侧轴的(纵轴)的对齐方式
align-content
设置了弹性盒子子元素在主轴的(横轴)的对齐方式

它们还有很多的取值,我偷个懒自己去查吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值