logo
About
Blog
Documentation
Downloads

Introduction

A simple css framework to layout web-based interfaces, based on the printed layout techniques of 4 columns but with capabilities to unlimited column combinations. and capacity to make elastic, fixed and liquid layout easily.

The benefits of CSS Frameworks

All frameworks are the consequence of repeated patterns, they help developers get faster, repeatable and predictable results. CSS frameworks are no different. By using them you can predict the results you will obtain, and you dont have to write over and over the same classes or css rules to accomplish certain results.

The people against CSS frameworks argument that because they can accomplish the same results by themselves, frameworks have no beneffit. But Modularity is the first beneffit, going with the DRY principle of programming.

So do you need a CSS Framework?, I would say you do. The problem here is to decide if currently available frameworks provide the features you need. Or going and develop a framework yourself.

Features

  • Declarative syntax
  • Unlimited Nesting
  • Liquid Layouts
  • Fixed Layouts
  • Elastic Layouts
  • SubPixel Rounding
  • Crossbrowser
  • Contextual Refresh
  • Fixed width columns
  • Elastic columns
  • Any number of columns
  • Column span
  • Column overloading
  • Integrated clearfix
  • unobtrusive with absolute positioning: no hidden or auto on clearfix
  • Mixed number of columns: use 2, then 3, then 7 in the same layout
  • Full width inputs(use the sapce of the column)
  • Same height columns
  • Full height blocks
  • Vertical and horizontal center
  • Variable column separation

Difficult layouts supported by elastic

  • 3 columns, the center one fixed
  • 3 columns, 2 columns fixed(right or left) and the other elastic
  • 3 columns first one 50% others use 25%

What are the differences between Elastic and other frameworks

Elastic defines a declarative language to make layouts, for example: two-columns, fixed-column, column. Other frameworks use more cryptic names like col1of3 or e30

Most frameworks are based on a grid system(Blueprint, 960gs, Tripoli). Elastic is a freestyle framework you can mix and nest any number of columns, you can even mix any number of columns, fixed-columns, and elastic-columns

Elastic provides a set of helper classes, to accomplish hard things by pure css like: same-height, full-width, and vertical-center

Elastic is designed so you can mix classes to accomplish complex layouts, recent frameworks are doing this too,(OOCSS)

Like Elastic does not impose any rule on the size of your layout, subpixel rounding problems come to the game, Elastic provides a predictable, and consistent method to deal with this,(OOCSS has a method for subpixel rounding too) But both frameworks have taken different approaches to this problem.

Elastic has integrated clearfix, so there is no need to do clearfix manually when making a layout. Most other frameworks require that the developer handle this, making it more difficult to change, and learn

Elastic clearfix method is not intrusive, it does not require extra markup, and dont use overlfow:hidden to accomplish it. So you can position relative or absolute like if your where not using clearfix at all.

Some frameworks require that the developer use a class last, to let the framework know that a block is ended, Elastic handles this situation autmatically, making it easier to learn and code.

Many frameworks are designed to make fixed with layouts, others to make liquid layouts, and some recent frameworks are offering mixed solutions. Elastic lets yout handle liquid, fixed, and elastic layouts, and even mix this techniques in the same layout.

Elastic is the first framework to provide a set of snippets to event make development faster in the form of snippets, currently there is a bundle for gedit, text-mate and coda

Elastic is not designed only for page layouts, you can layout widgets, and complex web-based applications too, and use it almost in anythinig related to html.

Compatibility

Our team has been able to test and confirm support layouts made with elastic in the following browsers:

  • Firefox 2 mac, windows, linux
  • Firefox 3 mac, windows, linux
  • Safari 3 mac and windows
  • Safari 4
  • Opera 9.6 linux
  • Internet Explorer 6
  • Internet Explorer 7
  • Internet Explorer 8 Beta 2

Getting started

Basic Layouts

Advanced Layouts

Tutorials

Reference

unit The base and starting point of all elastic framework grids
column this defines the content block of grid. and it does not matter where it appears it alwas behaves as a column. but its size is affected by its container. It also is affected by span-#
span-# Modifies the width of a column to # number of columns (much like table colspan does)
fixed-column a special type of column with a defined with, that can be set, or inferred by elastic engine. there can be more than 1
elastic-column a special type of column that uses the space not occupied by columns or fixed columns. there can be more than 1
container units or columns cannot be used to set margin or padding. container serves to this pourpose. This also has the beneffit of variable column separation
two-columns defines that every contained column must be 50% of its parentNode. It can be stacked with unit or column
three-columns defines that every contained column must be 33.33% of its parentNode. It can be stacked with unit or column
four-columns defines that every contained column must be 25% of its parentNode. It can be stacked with unit or column
auto-columns defines that every contained column must be 1/n of its parentNode. It can be stacked with unit or column, and it can be modified by group-by-#. Internally everything on elastic is processed as auto-columns, but to serve better syntax, and like 1-4 columns are the most common sets, they are explicitelly named, but they can be made by auto-columns
group-by-# modifies the behaviour of autocolumns making a #-columns block
same-height sets the height of every child to the height of its parentNode
equalized-height sets the height of every child to the height of the tallest column (use when using column overload)
horizontal-center centers an element on the x axis
vertical-center centers an element on the y axis
center centers an element on the y and x axis
full-width sets the element to the width of its container(usefull for form widgets)
full-height sets the element to the height of its container