WebBuilder101 - Making the web happen!
Need Web Dev software? Here is the place to
Flash Point

CSS Nirvana: CSS Center Layers & Elements
By Eddie Traversa

CSS Center Elements

View Finished Example [pop up window]

There is a way to center elements by browser size using CSS only. In order to achieve this effect, let us being by taking a look at the position attribute and understanding what each attribute value pertinent to positioning means and how it can be best deployed in a to center a layer across browser sizes. In the following examples we are going to be working with a CSS Layer, however it is important to recongnize that this technique can be used on any element that is absolutely positioned.

Position: Absolute

The position: absolute attribute signifies to the browser that this element will be positioned independently of other elements that are used in the page. Consider the following code snippet.


<div id="Layer1" style="position:absolute; width:346px; height:64px; z-index:1; left: 200px; top: 150px; background-color: #666666" class="maintext">
This is an absolutely positioned &lt;div&gt; element, that is 200px from left and 150px from top
</div>


In the above code snippet, we are interested in three attributes; the position, left and top attributes. These three attributes tell the browser to place the <div> element 200px from the left of the viewing area and 150px from the top of the browser viewing area, regardless of the page flow or the screen size of the browser

If you resize the browser screen to be less than 200px wide and hit the refresh button then no matter what you do the element remains at 200px from left and 150px from top. If the viewing area of the browser is less than 200px wide and 150px in height then the element goes off screen. It is important to understand that your positioning point starts from the top left corner of an element.

If we changed the code so that the element is placed 50% from the top of the browser and 50% from the browsers left edge we still find some problems. The placement of the element is dependent upon the browser size and consequently won't appear to be centered in most browser sizes, simply because the positioning of the element begins at the top left corner of the element.

We can overcome this limitation by shifting the top left corner of the element to some other co-ordinate. How? By using margin attributes.

If you recall, the top and left corner of the element begins exactly at the top left corner. By setting margins for the element, the top and left coordinates are shifted to accommodate the margin settings. Consequently the browser interprets the element top and left corner as beginning wherever we specify the margin attributes to be and will display content from that starting point. Armed with this knowledge, we can then go about creating an element that will always center by using a little math.

To obtain the new left edge value, divide the width attribute value by two; 364px / 2 = 173. Conceptually what we are about to do is subtract the value 173 from the width. We do this by setting a CSS definition for the element consisting of margin-left: -173px;.

We do the same for the new top edge value and end with margin-top: -32px for that element. The following is the CSS relevant for the margin settings of Layer1;

#Layer1 {

margin-left: -173px;

margin-top: -32px

}

The inline styles would look like this;


<div id="Layer1" style="position:absolute; width:346px; height:64px; z-index:1; left: 50%; top: 50%; background-color: #666666" class="maintext">
This is an absolutely positioned &lt;div&gt; element, that is 200px from left and 150px from top
</div>

Now our example centers independent of browser sizes. You can download and play with the source code from the following link.

Download Source Code [external link]

* * *

----------------------------------------------------------------------------------------------------

This article was contributed by Eddie Traversa from http://dhtmlnirvana.com

.

 

More Resources

Adding Style sheets with Dreamweaver
Removing link underlines
Fixed Background

Suggested Reading

Beginning Active Server Pages 3.0
JavaScript Bible
Red Hat Linux
Dreamweaver 3.0
HTML Bible



Download WB101 Wallpaper
• Web Builder 101 Wallpaper Get it!.
• Find out how to create your own Wallpaper Teach me!.
Sign up for our Newsletters
• Web Building Sign me Up!.
• Net Alert! Sign me Up!.
Need Help?
• Contact Support Click here.
• E-mail the Webmaster Click Here.
• Search Tips Click Here.

Webbuilder101.com © 1998 - 2003 Copyright and Terms of Use
Send mail to: webmaster@webbuilder101.com

» About » Support

» FAQ » What's New » MyLog

Web Builder 101 Web Builder 101 - Making the Web Happen Web Builder 101 - Making the Web Happen
.