CSS Horizontal Align
In CSS, several properties are used to align elements horizontally.
Aligning Block Elements
A block element is an element that takes up the full width available, and
has a line break before and after it.
Examples of block elements:
For aligning text, see the
CSS Text chapter.
In this chapter we will show you how to horizontally align block elements for
layout purposes.
Center Aligning Using the margin Property
Block elements can be aligned by setting the left and right margins to
"auto".
Note: Using margin:auto will not work in Internet Explorer. See the
next step in this tutorial for a crossbrowser fix.
Setting the left and right margins to auto specifies that they should split the available
margin equally. The result is a centered element:
Example
.center
{
margin-left:auto;
margin-right:auto;
width:70%;
background-color:#b0e0e6;
} |
Try it yourself »
|
Tip: Aligning has no effect if the width is 100%.
Crossbrowser Compatibility Issues
There is a bug in Internet Explorer's handling of margins for block
elements.
In IE, block elements are sometimes treated as inline content. This is particularly
problematic when it comes to centering.
For centering to work in IE, use the text-align property.
To avoid this affecting the text in the original <div>, add a new
<div> as a container with text-align:center, and reset the text-align in
the original
<div>:
Example
.container
{
text-align:center;
}
.center
{
margin-left:auto;
margin-right:auto;
width:70%;
background-color:#b0e0e6;
text-align:left;
} |
Try it yourself »
|
Now the code for centering a block element works in all browsers!
Left and Right Aligning Using the position Property
One method of aligning elements is to use absolute positioning:
Example
.right
{
position:absolute;
right:0px;
width:300px;
background-color:#b0e0e6;
} |
Try it yourself »
|
Note: Absolute positioned elements are removed from the
normal flow, and can overlap elements.
Crossbrowser Compatibility Issues
When aligning elements like this, it is always a good idea to predefine
margin and padding for the <body> element. This is to avoid visual differences
in different browsers.
There is also another problem with IE when using the position property. If
a container element (in our case <div class="container">) has a
specified width,
and the !DOCTYPE declaration is missing, IE will add a 17px margin on
the right side. This seems to be space reserved for a scrollbar. Always set the !DOCTYPE
declaration when using the position property:
Example
body
{
margin:0;
padding:0;
}
.container
{
position:relative;
width:100%
}
.right
{
position:absolute;
right:0px;
width:300px;
background-color:#b0e0e6;
} |
Try it yourself »
|
Left and Right Aligning Using the float Property
One method of aligning elements is to use the float property:
Example
.right
{
float:right;
width:300px;
background-color:#b0e0e6;
} |
Try it yourself »
|
Crossbrowser Compatibility Issues
When aligning elements like this, it is always a good idea to predefine
margin and padding for the <body> element. This is to avoid visual differences
in different browsers.
There is also another problem with IE when using the float property. If
the !DOCTYPE declaration is missing, IE will add a 17px margin on
the right side. This seems to be space reserved for a scrollbar. Always set the !DOCTYPE
declaration when using the float property:
Example
body
{
margin:0;
padding:0;
}
.right
{
float:right;
width:300px;
background-color:#b0e0e6;
} |
Try it yourself »
|

Need an easy way to get data into XML, or transform XML to another format?
MapForce lets you map XML data to/from any combination of XML, database, flat file, Excel 2007, XBRL, or Web services data.
Then it transforms data instantly or auto-generates royalty-free data integration code for recurrent conversions.
New features in Version 2010!
Download a free, fully functional 30-day trial to experience the following features:
- Easy-to-use, graphical data mapping interface
- Instant data transformation
- XSLT 1.0/2.0 and XQuery code generation
- Java, C#, and C++ code generation
- Advanced data processing functions
- Support for all major relational databases including SQL Server, IBM DB2, Oracle, and more
- Visual Studio & Eclipse integration
Download a fully-functional trial today!
|
|
|
|