Home Web Front-end HTML Tutorial Detailed explanation of margin merging_html/css_WEB-ITnose

Detailed explanation of margin merging_html/css_WEB-ITnose

Jun 24, 2016 am 11:41 AM

Detailed explanation of margin merging:

The phenomenon of margin merging is very common in web page layout, and this must be clearly understood. Be prepared for a rainy day, otherwise work efficiency may be affected or even seriously hinder the progress of the project. There are already a large number of related articles on the Internet. Next, we will introduce the phenomenon of margin merging through examples and a summary of online textbooks.

Concept:

Two or more adjacent margins are merged into one margin in the vertical direction, which is the so-called margin merging.

This phenomenon does not exist in the horizontal direction.

Margin merging conditions:

1. There is no non-empty content, padding, border and clear separation between adjacent margins.

2. The objects are all in the document flow, that is, elements that are not floating and whose position attribute values ​​are not absolute and fixed.

Merge can exist between sibling objects or between parent and child objects. Let’s introduce them separately:

1. Margin merging between sibling objects:

The example is as follows:

<!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"> div{   width:100px;   height:100px; } .top{   background-color:green;   margin-bottom:20px; } .bottom{   background-color:red;   margin-top:10px; } </style> </head> <body>   <div class="top"></div>   <div class="bottom"></div> </body> </html>
Copy after login

The performance of the above code can be seen that the top margin of the bottom element and the bottom margin of the top element are merged, and also That is, the vertical distance between the two elements is 20px, not 20px 10px=30px. It can be seen that the value of the two outer margins is larger. Let’s look at a 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"> div{   width:100px;   height:100px; } .top{   background-color:green;   margin-bottom:-20px; } .bottom{   background-color:red;   margin-top:10px;   position:relative;   left:20px; } </style> </head> <body>   <div class="top"></div>   <div class="bottom"></div> </body> </html>
Copy after login

If the margins are positive or negative, then select the maximum positive value and the minimum negative value and add them to get two The value to combine the two margins. Look at another example 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"> div{   width:100px;   height:100px; } .top{   background-color:green;   margin-bottom:-20px; } .bottom{   background-color:red;   margin-top:-10px;   position:relative;   left:20px; } </style> </head> <body>   <div class="top"></div>   <div class="bottom"></div> </body> </html>
Copy after login

If the object’s margins are all negative numbers, then take the smallest negative number as the margin.

2. Parent-child margin merging:

Let’s look at a code example first:

<!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

In the above code , the phenomenon of margins and merging occurs. At this time, the margins of the child element do not act on the parent element, but on objects outside the parent element. Parent-child margin merging must not only satisfy the two margin merging bars introduced at the beginning of the article, but also satisfy the fact that the parent element cannot have contextual layout attributes, such as overflow (except visible) or display:inline-block.

Special note:

The examples of margin merging introduced above only involve two objects, because this is the most common situation in practical applications, but The phenomenon of margin merging is not limited to two objects. As long as the conditions for margin merging are met, margin merging can occur. The code example is as follows:

<!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"></style> </head> <body> <div style="border:1px solid red;width:200px;"> <div style="margin-top:50px; background-color:green;">   <div style="margin-top:-50px;">     <div style="margin-top:150px;">蚂蚁部落</div>   </div> </div> </div> </body> </html>
Copy after login

above In the code, the three margins are merged. It is important to note that the method of calculating the merged margin values ​​is not calculated layer by layer, but follows the several principles introduced above. The above method of merging is to select the smallest sum from the negative values ​​to the positive values. The largest sum of value selections is -50px 150px=100px.
There is also a more extreme merging method: the margins of the elements themselves will also be merged. The code example is as follows:

<!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"></style> </head> <body> <div style="border:1px solid red;width:200px;">   <div style="margin-bottom:50px;margin-top:50px;"></div>  </div> </body> </html>
Copy after login

As can be seen from the running results of the above code, Its own margins are merged, but this div cannot have height, content, etc., because the upper and lower margins are not adjacent, and the conditions for merging margins are not met.

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

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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is the purpose of the <progress> element? What is the purpose of the <progress> element? Mar 21, 2025 pm 12:34 PM

The article discusses the HTML &lt;progress&gt; element, its purpose, styling, and differences from the &lt;meter&gt; element. The main focus is on using &lt;progress&gt; for task completion and &lt;meter&gt; for stati

Is HTML easy to learn for beginners? Is HTML easy to learn for beginners? Apr 07, 2025 am 12:11 AM

HTML is suitable for beginners because it is simple and easy to learn and can quickly see results. 1) The learning curve of HTML is smooth and easy to get started. 2) Just master the basic tags to start creating web pages. 3) High flexibility and can be used in combination with CSS and JavaScript. 4) Rich learning resources and modern tools support the learning process.

What is the purpose of the <datalist> element? What is the purpose of the <datalist> element? Mar 21, 2025 pm 12:33 PM

The article discusses the HTML &lt;datalist&gt; element, which enhances forms by providing autocomplete suggestions, improving user experience and reducing errors.Character count: 159

What is the purpose of the <meter> element? What is the purpose of the <meter> element? Mar 21, 2025 pm 12:35 PM

The article discusses the HTML &lt;meter&gt; element, used for displaying scalar or fractional values within a range, and its common applications in web development. It differentiates &lt;meter&gt; from &lt;progress&gt; and ex

What is the purpose of the <iframe> tag? What are the security considerations when using it? What is the purpose of the <iframe> tag? What are the security considerations when using it? Mar 20, 2025 pm 06:05 PM

The article discusses the &lt;iframe&gt; tag's purpose in embedding external content into webpages, its common uses, security risks, and alternatives like object tags and APIs.

What is the viewport meta tag? Why is it important for responsive design? What is the viewport meta tag? Why is it important for responsive design? Mar 20, 2025 pm 05:56 PM

The article discusses the viewport meta tag, essential for responsive web design on mobile devices. It explains how proper use ensures optimal content scaling and user interaction, while misuse can lead to design and accessibility issues.

The Roles of HTML, CSS, and JavaScript: Core Responsibilities The Roles of HTML, CSS, and JavaScript: Core Responsibilities Apr 08, 2025 pm 07:05 PM

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

What is an example of a starting tag in HTML? What is an example of a starting tag in HTML? Apr 06, 2025 am 12:04 AM

AnexampleofastartingtaginHTMLis,whichbeginsaparagraph.StartingtagsareessentialinHTMLastheyinitiateelements,definetheirtypes,andarecrucialforstructuringwebpagesandconstructingtheDOM.

See all articles