Home > Web Front-end > CSS Tutorial > Why margin-top does not act on parent elements

Why margin-top does not act on parent elements

巴扎黑
Release: 2017-06-28 13:44:04
Original
1715 people have browsed it

Whymargin-top does not act on the parent element:
Suggestion: Handwrite the code as much as possible, which can effectively improve the learning efficiency and depth .
As for the basic usage of the margin-top attribute, it couldn't be simpler, that is to set the top margin of an object , see the following code example:


<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="author" content="http://www.softwhy.com/" /><title>为什么margin-top不是作用于父元素</title><style type="text/css"> * 
{ 
  margin:0px; 
  padding:0px; 
} p 
{ 
  width:100px; 
  height:100px; 
  background-color:green; 
  margin-top:50px; 
} 
</style> 
</head> 
<body> 
  <p></p> 
</body> 
</html>
Copy after login

The above code can set the top margin of p to 50px, everything runs well, no If you have any questions, please look at the next piece of code:


<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="author" content="http://www.softwhy.com/" /><title>蚂蚁部落</title><style type="text/css"> #parent 
{ 
  width:200px; 
  height:200px; 
  background-color:red; 
} #children 
{ 
  width:60px; 
  height:60px; 
  background-color:green; 
  margin:0px auto; 
  margin-top:50px; 
} 
</style> 
</head> 
<body> 
<p id="parent"> 
  <p id="children"></p> 
</p> 
</body> 
</html>
Copy after login

The original intention of the above code is to make the top of the child element 50px away from the parent element, but in fact it is not achieved. The expected effect is that the top of the child element is close to the parent element, and the margin-top seems to be transferred to the parent element, allowing the parent element to generate a top margin. This is actually a typical margin merging problem, but not all browsers will produce this phenomenon. Generally, standard browsers will have this phenomenon, and IE6 and IE7 will not have margin merging in this state. Conditions for top margin merging to occur:
1. There is no border between the top margin of the parent element and the top margin of the child element.
2.There is no non-empty content between the top margin of the parent element and the top margin of the child element.
3.There is no padding between the top margin of the parent element and the top margin of the child element.
3. There are no positioning attributes (except static and relative), overflow (except visible) and display:inline-block set in the parent element and child element.
4. Neither the parent element nor the resource is floating.
Note: The above conditions must be met. Then the way to solve this situation is also very simple, just destroy one of the above situations.
For more information about margin merging, please refer to the margin merging detailed explanation chapter.

The above is the detailed content of Why margin-top does not act on parent elements. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template