Hey SitePoint,
I just came across a few articles on the Holy Grail layout and had a few general questions about it as it relates to floats and other things. (http://alistapart.com/article/holygrail)
-
Why use clearfix hack with a lot of extra markup when overflow: auto seems to work perfectly. It even keeps the margins from collapsing (the reason, from what I understand, that the :before selector is included in clearfix). I tried looking up differences on google and I couldnt really find a definitive answer other than super old browsers dont support that fix, which is why display: table is usually included in clearfixes.
-
A major issue and concern with the Holy Grail layout is having columns in a row expand height to the tallest column in the row. A fellow sitepoint member helped me get that working one time by simply using display: table and display: table-cell to achieve this. Lets you avoid using actual tables so site spiders and handicap readers dont think the divs are tables and cells but just display them as such. Any problems doing this? Havnt seen a single other person show this in an article. I always find long winded and complex solutions to this problem.
-
Another major issue that requires massive workarounds is having the ‘main’ div holding all your content come first in your markup for SEO purposes. How much does this really effect things? I was under the impression that I should mark up my pages as it makes sense for the document, and its very counter-intuitive to have a 2-1-3 ordered markup to move things around with the CSS to achieve the 1-2-3 layout once the page is loaded.
My point is, the Holy Grail layout and floats are seen a lot and I just dont want to pick up bad habits along the way as a developer. If I shouldnt be using overflow: auto or display: table/table-cell then I would drop them immediately as long as I knew why I was doing so.
So how would you go about getting the Holy Grail layout? What do you guys use for float issues? I use a CSS grid system that has clearfix baked in or overflow: auto when outside that system