SmashArticles.com
Search For
Keywords  
  Advance Search
Smash Articles | Smash Ebooks | Smash Community | Smash Web Directory | Smash SEO Tools

Articles

Submit Your Article
Latest Articles
Popular Articles
Top Rated Articles
RSS Feed for Articles ROR Feed for Articles

Ebooks

Latest Ebooks
Popular Ebooks
Top Rated Ebooks
Authors
Cover Gallery
RSS Feed for Ebooks ROR Feed for Ebooks

Donation


Web Directory

Submit Your Website


Partner

Articles directory

Sign up for Newsletter

Email

 

Add This Article To:
Del.icio.us Digg Google Spurl
Blink Furl Y! MyWeb
Back to CSS

HasLayout concept explained - Learn how to exploit IE's „layout"


by Lighezan Alexandru

What the hell is layout? Layout is an Internet Explorer proprietary concept that controls both size and position of elements. IE uses "layout" to reduce its processing needs. In modern browsers, like FFox, Safari and Opera each element is responsible for it's own size and position. In IE 6 and below this would cause extreme problems related to performance. That's why IE gives "layout" only to elements that really need it. Anyway, "layout" really affects CSS designs, so it's important to know how to deal with it.

What elements do have layout? Elements that have layout include: bodytable, tr, td, input, select, textarea, button, img, marquee, hr, inframe(don't use this, please :) ), object, applet

How to give layout to an element? Using one of these CSS properties: float: left/right; position: absolute; display: inline-block; width/height;

Problems caused by "layout": Elements with layout incorrectly size themselves: Let's say you have a div with width:10px; Write some text inside it and set it's size to 30px. Also set border: 1px solid black; In this situation the text should flow out of the div, but in IE the div incorrectly expands. This shows that IE uses width like a min-width.

Absolute positioned elements within a relative container: Let's say that you have some absolutely positioned elements inside a relatively positioned ancestor. In IE, instead of being positioned relative to the ancestor, these elements will get positioned relative to the viewport. This bug is caused by IE's internal "hasLayout" feature. Elements with relative position are not considered to have "layout". A simple solution for this bug would be to set a width or height, to force the element to have layout. Anyway, maybe sometimes you will not know the dimensions of the element, so you can use the following hack:

/* Hide from Mac \*/ * html.element { heighT: 1px; } /* End hide from Mac */

About the Author
Lighezan Alexandru is a high quality web development articles writer. Some of its work can be found at chml srucnoc online.
Reviews Be the first to review/rate this Article

Home | Articles | Ebooks | Community | Web Directory | SEO Tools | Submit Your Article | Submit Your Website
Latest Articles | Popular Articles | Top Rated Articles | RSS Feed for Articles | ROR Feed for Articles
Latest Ebooks | Popular Ebooks | Top Rated Ebooks | Ebook Authors | Cover Gallery | RSS Feed for Ebooks | ROR Feed for Ebooks
Site Map | FAQ | Privacy Policy | Disclaimer | Advertise With Us | About SmashArticles.com | Contact Us | links
Partners | Resources
 
Copyright © 2006 SmashArticles.com