On 2006-09-09, at 12:15 EDT, Adam Wolff wrote:

This is expected behavior. The reason for it is not that edgar is looking at its parent for the value of testdata, it's that edgar is also a view, and right now our specificity stuff doesn't account for the more direct
applicability of the subclass selector.

If this is 'expected' it's going to confuse the heck out of people who expect our CSS to work like w3c CSS.

As I said in my response, Ben's intuition matches CSS. Here is my equivalent CSS:

<style type="text/css">
<!--
        /* rule 1, specificity 10 */
        [name="thename"] { background-image: url(confused.jpg); }
       /* rule 2, specificity 1 */
        p { background-image: url(w00t.jpg); }
       /* rule 3, specificity 1 */
        div { background-image: url(sad.jpg); }
-->
</style>
<div name="thename">
        <p id="edgar">
<span name="background-image" style="font-size: 72pt">This is a test</span>
        </p>
</div>

Which will display the background-image 'w00t'.

In CSS a `p` is effectively a `div` with specific defaults for css attributes, but rule 3 will never apply to a `p`.

You can confirm this by switching the order of the rules, and you'll get a different result. I assume that the applicability of rules with the same specificity in CSS is undefined, but ours happen to roughly mimic lexical
order for now because we are using array.sort which I think is stable.

One of the cascade rules of CSS is lexical order. Later rules with equal specificity take precedence over earlier rules.

It would be nice to make subclasses more specific than superclasses, but that would make specificity a function of not only the selector, but also
the node being selected, and that seems like a pain.

I think the idea of making a CSS tag selector select for `instanceof` is appealing, but it is going to confuse the heck out of people who are expecting it to be like a CSS tag selector, as Ben's example shows.

My vote would be to fix this now, before it is released in the wild. The current behavior could be considered an extension of CSS. As such, it should probably be indicated with a different syntax than the tag selector. At the very least we need to tweak it so that a more-specific tag/class has more specificity!



<<attachment: confused.jpg>>

<<attachment: w00t.jpg>>

<<attachment: sad.jpg>>


_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to