Skip to content Skip to sidebar Skip to footer

Css Auto Margin Pushing Down Other Elements

I'm attempting to make a site beautiful, and so far it's gone quite well, by problem arose when attempting to center a column with 2 side columns, if I use margin:0 auto; the 2 sid

Solution 1:

Put the #center_column div after the #right_column div.

This isn't the best of all answers as it changes the markup to adjust the style, but it should work for a quick-fix.

Edit to explain: I didn't post a why before, and I think it might be useful.

docs

A float is a box that is shifted to the left or right on the current line. The most interesting characteristic of a float (or "floated" or "floating" box) is that content may flow along its side (or be prohibited from doing so by the 'clear' property). Content flows down the right side of a left-floated box and down the left side of a right-floated box. The following is an introduction to float positioning and content flow; the exact rules governing float behavior are given in the description of the 'float' property.

I bolded the important part. Because the centered div was already in the display list, the current line for #left_column and #right_column is after#center_column. Once you put #center_column after the left and right columns, the current line is next to the floated elements.

Solution 2:

#page_container { text-align: center; }
#left_column { float: left; }
#right_column { float: right; }

and change the order of the dom to make #center column last.

Solution 3:

If you don´t want to change the order in your html (for SEO, screenreaders, etc.), you can also use absolute positioning for the side columns, but that might lead to problems if the side columns can have a greater height than the center column.

Post a Comment for "Css Auto Margin Pushing Down Other Elements"