OT: Using CSS for layering (was RE: web design and screen resolution)

Joseph Sinclair plug-discuss at stcaz.net
Sat Feb 11 14:11:08 MST 2006


Try applying a z-index to the styles.
Spec details http://www.w3.org/TR/CSS21/visuren.html#q29

It also often helps to not have the lower layer as a parent of the upper layer.

You might also want to use classes here, since upper/lower layering is likely to come up more than once.
Remember, you can apply multiple sets of rules to a single element, and it's generally best to reserve ID selectors for very specific circumstances.
It's also probably a good idea to put the image in the background, it makes everything easier to manage.
I put a third div in this example, to show a different way to accomplish what you seem to be trying to do.

Example:
In the stylesheet:

#section1 { height: 118px; width: 130px; left: 36px; top: 20px; position:
absolute; visibility: visible; background-image: url(/images/pic.gif); background-repeat: no-repeat; }
#section2 { height: 150px; width: 752px; left: 36px; top: 20px; position:
absolute; visibility: visible; }
.lower-layer { z-index: 1000; }
.upper-layer { z-index: 2000; background-color: transparent; }

In the content:

  <div id="section1" class="lower-layer" />
 <div id="section2" class="upper-layer">
   <h2>Some text</h2>
 </div>
  <div id="someOtherSection" class="lower-layer" style="background-image: url(/images/anotherImage.png); background-repeat: no-repeat;">
   <p class="upper-layer">Some Other text</p>
  </div>



Craig White wrote:
> On Mon, 2006-02-06 at 21:17 -0500, FoulDragon at aol.com wrote:
> 
>>Also remember:
>> 
>>1024x768 screen != 1024x768 window.
>> 
>>I have my desktop at 1600x1200 (<3 my 21" CRT) but almost never run an
>>app at 1600x1200.
> 
> ----
> along these lines...I'm struggling with 'printing' html and I don't
> exactly know how to handle this. On screen...I have no problems but
> print preview - I have a problem
> 
> Consider 2 layers defined in <head>
> 
> #layer1 { height: 118px; width: 100px; left: 36px; top: 20px; position:
> absolute; visibility: visible; }
> #layer2 { height: 150px; width: 752px; left: 36px; top: 20px; position:
> absolute; visibility: visible; }
> --></style>
>   </head>
>     <body>
>       <span id="layer1">
>          <img src="/images/pic.gif" alt="" height="112" width="128"
>           border="0" />
>          <span id="layer2">
>            <h2>Some text<</h2>
>          </span>
>       </span>
> 
> In print preview...text in layer2 is 'below' rather than on same
> horizontal plane as picture in layer1. Inside normal browser mode (not
> printed/not print preview), the objects are perfectly where I want them.
> 
> I have tried both <span> and <div> tags but the same results.
> 
> I am trying not to 'force' the location with <table> as I am trying to
> reform my ways.
> 
> What is the trick?
> 
> Craig
> 
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
> To subscribe, unsubscribe, or to change  you mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
> 


More information about the PLUG-discuss mailing list