CSS Layout Crash Course - Dordt College Web Design

CSS Layout Crash Course
An Advance CSS Tutorial
Inline vs. Block
Many HTML elements have a default display setting of Block. Block elements take up the full width of
space available and have a line break before and after it.
Examples:
• <div>
• <p>
• <h1> & <h2> & <h3> & <h4>
• <ul> & <ol> & <li>
• <header>
• <footer>
• <section>
• <aside>
• <article>
Other HTML elements have a default display setting of Inline. Inline elements take up only the amount
of space they need for their content and do not force any line breaks.
Examples:
• <a>
• <span>
• <em>
• <strong>
Remember the Box
Remember when executing a layout in CSS that every HTML element can be thought of as a box and
therefore they can all have padding, margin and border properties applied to them to alter the amount
of space they occupy and how close they are to other objects.
Dimensions
Dimensions of an element can be set using any of these properties:
• height
• width
• max-height
• max-width
• min-height
• min-width
These are set using the auto, pixel, percentage or inherit values.
Positioning
The Position Property allows you to position an element and specify what should happen when an
elements content is too big.
Elements can be positioned using the top, bottom, left and right properties. However, these properties
will not work unless the position property is set first. They will work differently depending on the
position method chosen.
There are four different positioning methods.
Static Positioning
HTML elements are positioned static by default. A static positioned element is always positioned
according to the normal flow of the page.
Static positioned elements are not affected by the top, bottom, left and right properties.
Fixed Positioning
An element with fixed position is positioned relative to the browser window. It will not move even if the
window is scrolled as they are removed from the normal flow.
The rest of the document will behave like the Fixed Element does not exist.
Relative Positioning
A relative positioned element is positioned relative to it’s normal position. The content of a Relative
Element can be moved and overlap other elements, but the reserved space for the element is
preserved in the normal page flow.
These are often used as containers for absolutely positioned elements.
Absolute Positioning
An absolute positioned element is positioned relative to the first parent element that has a position
other than static. If no such element is found, the containing block is <html>. Absolute Elements are
removed from the normal flow and the document will behave like the Absolutely Positioned Element
does not exist.
Absolute Elements can also overlap other elements.
When elements are positioned outside of the normal flow (Fixed and Absolute), they can overlap other
elements. The z-index property specifies the stack order of an element (which element should be in
front or behind others).
An element can have a positive or negative order and elements with the greatest number will appear
in front of elements with lower numbers.
If two elements overlap and do not have a z-index specified, the element positioned last in the HTML
code will be shown on top.
Float
With the Float Property, an element can be pushed left or right, allowing other elements to wrap
around it on the open side. Float is often used on images for word wrap, but it is also very helpful for
layouts.
Elements float horizontally only and the floated element will move as far right or left as it can (to the
very edge of the containing element).
Elements that follow it in the html code will flow around it and elements before it in the code will not be
affected.
You can turn float off when needed by setting the float property to float:none;.
You can prevent elements below the floated element from wrapping around by using the Clear
Property. Clear can be set to left, right or both.
I often have a class selector called clear that I can reused when needed to prevent items from
wrapping. It usually looks like this: .clear{clear:both;}. And I often use it on the page like such: <div
class=“clear”></div>.
Aligning Block Elements
As I have mentioned, elements that have a default display setting of block will by default occupy the
entirety of the available width.
However, if you set a block element’s width to something less than 100%, you will notice that it will
often left align by default.
If you’d like to center align the block element, you can utilize the Margin Property to make this happen.
By setting the margin-left and margin-right properties to “auto”, you will center the block element within
it’s parent container.
Left and Right align the block element by using the Float Property. Float left or right will do the job, but
you must have the element’s width set as smaller than 100% of the container element.
I suggest setting the margin and padding properties to “0” in the body tag selector in your stylesheet as
this will prevent crossbrowser compatibility issues.