Css Auto Margin Pushing Down Other Elements
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.
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"