W3C home > Mailing lists > Public > www-style@w3.org > May 2006

Re: [CSS3] What about "behavioral extensions to CSS"?

From: Andrew Fedoniouk <news@terrainformatica.com>
Date: Fri, 05 May 2006 23:42:56 -0700
To: Jordan OSETE <jordan.osete@laposte.net>, www-style@w3.org
Message-id: <003e01c670d8$4ec52e70$3401a8c0@TERRA>


----- Original Message ----- 
From: "Jordan OSETE" <jordan.osete@laposte.net>


> 
> Hello everyone,
> 
> I was wondering what was going on about the "Behavioral extensions to 
> CSS" working draft [1]. It hasn't been updated since 1999, but it seems 
> very interresting extensions to me.
> 
> Specifically, in the first part, the "Event Properties", and "Script 
> blocks" paragraphs seem to me quite stable, and maybe not too hard to 
> implement by user agents (since they only use existing technologies: CSS 
> parser, script interpreter, and events). It would also help 
> webdeveloppers a lot.
> 
> Why hasn't this WD been updated since then? Is no one in the W3C 
> interested in it, or is it because of technical difficulties at the time?
> 
> The "Open issues" part at the end of the document says that:
> 1.    it depends on the DOM Level 2, wich was a WD at the time, but is 
> now a Recommendation, so this point is now useless, and that
> 2.    the order of event handler invocation needs to be specified (in 
> wich order the DOM events, events specified in HTML attributes and 
> events specified in CSS will be called). I don't know if it is that 
> important to specify a specific order now. Maybe it could be left to the 
> UA, or if the developper really needs a specific order (wich will 
> probably be very rare), he would tell it in the CSS. I see 2 easy ways 
> to do this:
>   a) on a per-event basis, after the quoted script, like this:
>     onclick: "myEventListener(this)" order(attrEvents, CSSEvents, 
> DOMEvents);
>   b) Or on an element basis:
>     div {
>       onclick: "handleClick(this)";
>       onmouseover: "handleMouseOver(this)";
>       eventsorder: attrEvents, CSSEvents, DOMEvents;
>     }
> 
> Hope it helps.
> 
> Jordan Osete
> 

As a rule such event handlers constitute closed system of 
functions - a.k.a. as class. 
And 
  div {
       onclick: "handleClick(this)";
       ....
  }
allows you override methods independently which is wrong. 

Better approach is to use 

  div {
       background: white;
       prototype: MyBehavior;
       ....
  }

and in script to define:

var MyBehavior = 
{
     onClick: function() {...}   
     onMouseHover: function() {...}
}
 
I think that it makes sense to take a look on
Ben Nolan's work: http://bennolan.com/behaviour/ 
- same approach is used.

Andrew Fedoniouk.
http://terrainformatica.com
Received on Saturday, 6 May 2006 06:42:57 GMT

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