1. 程式人生 > >css的外邊距合併(如何實現不合並)

css的外邊距合併(如何實現不合並)

  如何實現外邊框不合並呢?我總結了幾個知乎大神和老師上課說的辦法:

1.可以只設置下邊距或者上邊距:

<!DOCTYPE >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>不合並</title>
<style>
*{margin:0;padding: 0;}
.first, .second, .third{height:100px;width:500px;padding: 20px;margin-bottom: 20px;}
.first{  background:#ccc;}
.second{ background:#FCC;}
.third{ background:#9CF;}	
</style>
</head>
<body>
<div class="first">first</div>
<div class="second">second</div>
<div class="third">third</div>
</body>
2。 讓父級元素觸發 BFC,就能使父級 margin 和當前元素的 margin 不重疊。

<!DOCTYPE html PUBLIC >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>不合並</title>
<style>
*{margin:0;padding: 0;}
.first, .second, .third{height:100px;width:500px;padding: 20px;margin: 20px;}
.container{
	overflow: hidden;
}
.first{  background:#ccc;}
.second{ background:#FCC;}
.third{ background:#9CF;}	
</style>
</head>
<body>
<div class="container">
<div class="first">first</div>
</div>
<div class="container">
<div class="second">second</div>
</div>
<div class="third">third</div>
</body>
可以看到第一和第二之間沒有發生合併,而第二第三之間合併了。

3.border的設定:

<!DOCTYPE html PUBLIC >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>不合並</title>
<style>
*{margin:0;padding: 0;}
.first, .second, .third{height:100px;width:500px;padding: 20px;margin: 20px;border: 10px solid #fff;}
.container{
	overflow: hidden;
}
.first{  background:#ccc;}
.second{ background:#FCC;}
.third{ background:#9CF;}	
</style>
</head>
<body>
<div class="first">first</div>
<div class="second">second</div>
<div class="third">third</div>
</body>


這三方法其實都是讓兩個元素不再相鄰,就可以避免合併的情況出現。

----------------------------------------------------------

2016/3/22修改

今天又不小心看到一篇總結的很好的博文。實在汗顏。

附地址:http://www.hujuntao.com/web/css/css-margin-overlap.html

說的很全面了,可以參考



----------------------------------------------------------------------