外边距(margin)

  • Post author:
  • Post category:其他



外边距(margin)


margin属性用于设置外边距。设置外边距会在元素之间创建“空白”,这段空白通常不能放置其他内容。

margin-top: 上外边距

margin-right: 右外边距

margin-buttom: 下外边距

margin-left: 左外边距

margin: 上外边距 右外边距 下外边距 左外边距

外边距实现盒子居中

可以让一个盒子实现水平居中,需要满足两个条件:

1、必须是块级元素。

2、盒子必须指定了宽度(width)

然后就给左右的边距都设置为auto,就可使块级元素水平居中。

实际工作中常用这种方式进行网页布局,示例代码如下:

.header {width:960px; margin:0 auto;}


清除元素的默认内外边距


为了更方便地控制网页中的元素,制作网页时,可使用如下代码清除元素的默认内外边距。

* {


padding: 0;

margin: 0;

}

注意:行内元素是只有左右内外边距的,是没有上下内外边距的。内边距,在IE6等低版本浏览器也会有问题。

我们尽量不要给行内元素指定上下的内外边距就好了。


外边距合并


使用margin定义块元素的垂直外边距时,可能会出现外边距的合并。

相邻块元素垂直外边距的合并

当上下相邻的两个块元素相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top,则他们之间的垂直间距不是margin-bottom与margin-top之和,而是两者中的较大者。这种现象被称为相邻块元素垂直外边距的合并(也称外边距塌陷)

解决方案:避免就好了。


嵌套块元素垂直外边距的合并


对于两个嵌套关系的块元素,如果父元素没有上内边距及边框,则父元素的上外边距会与子元素的上外边距发生合并,合并后的边距为两者中的较大者,即使父元素的上外边距为0,也会发生合并。

解决方案:

1、可以为父元素定义1像素的上边距或者上内边距

2、可以为父元素添加overflow:hidden;


代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
	* {
		padding: 0;
		margin: 0;
	}
	div {
		width: 100px;
		height: 100px;
		background-color: green;

	}
	.margin{
		margin-top: 50px;
		margin-left: 50px;	
	}
	.center {
		width: 100px;
		height: 100px;
		background-color: pink;
		margin: 0 auto; /*居中对齐*/
	}	
	.Big {
		width: 100px;
		height: 100px;
		background-color: green;
		overflow: hidden; /*解决父元素高度塌陷问题*/
	}
	.Little {
		width: 50px;
		height: 50px;
		margin: 30px;
		background-color: red;
	}	
	</style>
</head>
<body>
	<div class="Big">
		<div class="Little"></div>
	</div>

	<div class="margin"></div>
	<div class="center"></div>

</body>
</html>


效果如下:



版权声明:本文为Liyunhao_haoge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。