Home > Article > Web Front-end > Analysis of the reasons why horizontal centering is invalid when setting margin:0 auto; in css
A common problem that many friends who are new to making web pages may encounter is that adding margin:0 auto; in CSS has no effect and cannot be centered. margin:0 auto; means: the upper and lower boundaries are 0 , the left and right sides are adaptive according to the width, which actually means horizontal centering. Here are two typical errors that cause problems that cannot be centered:
1. The width is not set
<div style="margin:0 auto;"></div>
Look at the above code, there is no DIV set at all Width, how to adapt according to the width? Issues that are easier for novices to overlook.
2. DOCTYPE is not declared
1) DOCTYPE is the abbreviation of document type, which is used in web design to indicate what version of XHTML or HTML you are using. To build a standards-compliant web page, the DOCTYPE declaration is an essential and critical component.
2) Look at the code below, does it look familiar? Like this, at the top of the document, the mess above all the code is used to declare DOCTYPE:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3) You have three options to declare DOCTYPE
* Transitional: The requirements are very Relaxed DTD, which allows you to continue to use HTML4.01 logos (but must comply with xhtml writing), the complete code is as follows:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
* Strict (Strict): strict DTD, you cannot use any presentation layer logos and attributes, such as 0c6dc11e160d3b678d68754cc175188a, the complete code is as follows:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
* Frameset: a DTD specifically designed for frame page design. If your page contains a frame, you need to use this DTD. The complete code is as follows :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
4) As for which one to choose, just use the transitional one.
After talking for a long time, margin:0 atuo; does not work. If it cannot be centered, check whether there is a DOCTYPE statement at the top of your document. If not, just copy and paste it and it will be fine.
Also, the actual effects of margin:0 auto; and margin-left:auto; margin-right:auto; are sometimes different. The reason may be that when the height of margin-top is set to not be 0, an error will occur. Unexpected effect.