Home > Web Front-end > HTML Tutorial > Why margin-top does not act on the parent element_html/css_WEB-ITnose

Why margin-top does not act on the parent element_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:41:23
Original
1102 people have browsed it

Why margin-top does not act on the parent element:
As for the basic usage of margin-top attribute, it is very simple, 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.51texiao.cn/" /><title>蚂蚁部落</title><style type="text/css"> * {   margin:0px;   padding:0px; } div {   width:100px;   height:100px;   background-color:green;   margin-top:50px; } </style> </head> <body>   <div></div> </body> </html>
Copy after login

The above code can set the top margin of the div to 50px. Everything runs well without any problems. Let’s 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.51texiao.cn/" /><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> <div id="parent">   <div id="children"></div> </div> </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 does not achieve the expected effect. Instead, the top of the child element is close to the parent element, and the margin-top seems to be transferred to Parent element, let the parent element generate 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 parent elements nor resources are 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.

The original address is: http://www.51texiao.cn/div_cssjiaocheng/2015/0501/506.html

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