We often encounter the need to set the layout of the same row, but it is misplaced due to various reasons. I have summarized that there are probably two reasons for the misalignment of web page layout. Today I will give you a detailed analysis of the reasons and solutions.
Often we encounter a layout that we want to set up to display in a row, but it is misaligned due to various reasons. The result is that the layout of the last box in a row is misaligned and falls down
There are probably two reasons for the misalignment of DIV CSS web page layout. One is width calculation error, and the other is caused by IE BUG, especially IE6 and IE7. Next, we will introduce to you the misalignment and the methods to solve the misalignment.
Solution to width calculation error
Width calculation error, if the total width is 500px, there are 3 boxes, and the CSS widths are 200px, 200px, and 100px, this will be displayed in a row without any problem It will not be misplaced, but if you add css borders,padding,marginattributes, don’t forget the width occupied by these attributes. In particular, don’t ignore the width space occupied by padding and borders. If there is a box with left and right borders added, at this time there is a box in which the width is just right and the width occupied by the border is reduced by 2px. Otherwise, the total width of the three boxes will be greater than the total width, causing misalignment.
Summary of CSS layout misalignment caused by width issues:
The sum of the inner box widths is greater than the outer width, causing misalignment. When checking, we must calculate the sum of the set width, border, paddind, and margin.
IE BUG, especially the misalignment caused by IE6 and IE7
This problem is the most common problem. We have checked the first width problem, and the width is no problem. At this time, in IE6 and IE7 Misalignment, there is no misalignment problem in IE8 andotherbrowsers. At this time, we have to consider whether you use the margin attribute. Usually we useCSS float(css float) Using margin (margin-rightmargin-leftespecially this attribute here) will produce double values. At this time we need to use css hack to solve this problem. Let IE6 or IE7 recognize the specified margin style alone.
For example:
1. IE6 is recognized separately (margin-left is misaligned for only IE6)
{margin-left:5px;_margin-left:2px}
At this time, other browsers except IE6 set margin-left:5px, and IE6 recognizes _margin-left:2px separately
2. Both IE7 and IE6 recognize margin-left (margin-left is recognized for ie6 and ie7 recognizes other versions and brand browsers without setting distinction)
{margin-left:5px;*margin-left:2px;}
At this time, except IE6 and IE7, other browsers Assume that margin-left:5px, IE6 and IE7 identify *margin-left:2px
I believe you have mastered the method after reading these cases, please pay attention to php for more exciting things Other related articles on the Chinese website!
Related reading:
Detailed explanation of the difference between html and xhtml
Js gets common ways to get styles
The above is the detailed content of Reasons and solutions for misalignment of HTML web pages. For more information, please follow other related articles on the PHP Chinese website!