W3C home > Mailing lists > Public > www-style@w3.org > July 1997

RE: Cascading Style Sheets

From: Scott Isaacs <scotti@microsoft.com>
Date: Thu, 3 Jul 1997 12:17:56 -0700
Message-ID: <4175E9758584CF11927E00805F68ACFA034C0728@RED-99-MSG.dns.microsoft.com>
To: "'Taylor'" <taylor@wired.com>
Cc: www-style@w3.org, "'vertigo@triberian.com'" <vertigo@triberian.com>
IE4 currently does not expose the rules and values set in a global style
sheet (you can add new rules at any time). Below explains how to
manipulate elements positioned by global style sheets.

For every element in the document, (you will need to wait for beta 2),
we expose an offsetTop and offsetLeft property that returns the position
of the element. For elements that are rectangular (eg, absolute
positioned elements) you also get an offsetWidth and offsetHeight
property. 

Through these properties you have access to the position of any element,
and the size of any rectangular element offset from its parent
coordinate system (consistent with CSS-P). For elements that are
position: relative or position: absolute, you can assign a new position
using the style property on the element (you effectively are assigning
the in-line style that overrides the global stylesheet).

If you want to quickly reposition a group of elements, you can add a new
global rule to the stylesheet (there is a stylesheets collection
representing all the global stylesheets - addRule is a method on
individual style sheets). This rule will then automatically cascade and
be applied to the document.

For example (the code samples will require beta 2):

  <STYLE>
    DIV {position: absolute; top: 10; left: 20}
  </STYLE>
  <DIV ID=d1>Box 1</DIV>
  <DIV>Box 2</DIV>

Both of these are initially on top of each other.

To change the position and other style of both DIV's, add a new global
rule to the first style sheet.
document.styleSheets[0].addRule("DIV", "position: absolute; top: 30;
left: 30; color: red; font: bold 18pt Arial")

To see where the element D1 is rendered:
alert(document.all.d1.offsetLeft);

To override and move the DIV, D1:
document.all.d1.style.top = "20pt"; 
// We also expose posTop, posLeft, etc that returns just the value
without the unit for numerical computation
  and pixelTop, pixelLeft, etc., for numeric pixel manipulation.


Hope this helps,
Scott Isaacs


> ----------
> From: 	Taylor[SMTP:taylor@wired.com]
> Sent: 	Thursday, July 03, 1997 11:44 AM
> To: 	Scott Isaacs
> Cc: 	www-style@w3.org; 'vertigo@triberian.com'
> Subject: 	RE: Cascading Style Sheets
> 
> On Thu, 3 Jul 1997, Scott Isaacs wrote:
> 
> |In addition, every property can be scripted through IE4's Dynamic
> HTML
> |object model (for swipe effects, moving elements, accessing and
> changing
> |the contents, changing the appearance, etc) but that is independent
> from
> |CSS.
> 
> But can every property be read from the DOM?  I've had problems where
> only
> inline style rules are accessable to being read, while linked styles,
> or
> styles contained in the head are writable on the object, but not
> readable.
> 
> -----------------------------------------------------------taylor@wire
> d.com
>   "California seceding will not meet 
>                                  Taylor's need for spiritual
> development."
> Wired Digital's Minister of Ambiance and
> Energy----------------------------
> 
Received on Thursday, 3 July 1997 15:18:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:53:50 GMT