Negative margins can be really useful for offsetting content from it’s container. I find them useful when I need to indent most content from the edge of a container but allow certain items to go edge to edge.
But, alas, in certain cases Internet Explorer 6 cuts off the content that is outside the container of the element when that container has layout.
The solution is to also set layout on the element you are trying to offset. My favorite way of setting hasLayout on an element is to use zoom:1. It has NO side effects.
According to this article, you also should set position:relative to keep from triggering another bug.
An example always helps:
/* this is our list container, with hasLayout set */
ul.myList{
padding:10px;
zoom:1;
}
/* this is our list item, with fixes */
li.selected{
margin-left:-10px;
padding-left:10px;
zoom:1;
position:relative
}