- From: Alberto Pacheco <apacheco@platon.itchihuahua.edu.mx>
- Date: Thu, 23 May 2002 14:51:10 -0400 (EDT)
- To: <www-style@w3.org>
I'm aware of letting CSS remains as a _descriptive_only_language_
Shame on me about having selected a syntactic "procedure/function call"
notation
I will try to express idea #2 (parametrized classes: reusing & extending
classes) more clearly, suppose the following scenario:
Let be the following style sheet definition, eg "my_app_style.css"
.x1 { a:i1; b:j1; c:k1; }
.x2 { a:i2; b:j1; c:k1; }
#x3 { a:i3; b:j2; c:k2; }
Let be an HTML page:
@import url(my_app_style.css);
..
<span class="x1"> OK :-) </span>
<span class="x2"> OK :-) </span>
<span id="x3"> OK :-) </span>
<!--
Here, user realizes he/she needs a derivative x-class behavior
but he/she do not reuse any of them because he/she needs "a:i4"
-->
<span style="a:i4; b:j1; c:k1;"> Bad choice!! Human makes mistakes :-O
</span>
Is there a better CSS solution for this _user_requirement_? Let's see
(please help me if I missing something):
(1) With standard CSS:
<span class="x1" style="a:i4;"> Reuse x1 but change a to i4. STYLE has
higher SPECIFICITY than CLASS selector </span>
(2) With ECMA Script, ie JavaScript:
<span id="x3"> Reuse x3 and change an attribute value using JavaScript
</span>
<script language="JavaScript"> x3.style.a="i4"; </script>
(3) XML/XSLT/FOSI/DSSL: I feel it can be done but I ignore how to do it
(please help/forgive me)
-- Other solution(s) --
(4) With my proposal.. a little more "OO-like" as Manos said ;-)
.x { a:i1; b:j1; c:k1; } /* Just define one x-class and reuse/extend it
*/
..
<span class="x[a:i4]"> Reuse x definition but change a to i4 </span>
<span id="x[a:i5]"> Same for ID selectors: reuse x definition but change
a to i5 </span>
I agree that (1) is (an incidental) solution but it doesn't have the (4)
expressive notational power for things like "apply class a, b and c, and for
all of them (CSS2 universal selector *) change (for example) "media"
attribute to "print":
<div class="a b c *[media:print]"> A Slide Presentation </div>
I think this is a matter of "style": Why we have to manage style's
attributes with other non-style-based languages (such as JavaScript) when
CSS can (be extended to) do it better?
Sincerely
Alberto Pacheco
A CSS user, web-author and CSS-based-systems implementor
alberto@computer.org
PS
1. Thanks to all of you for solution for question #1 and for your precious
time and debate about question/proposal #2, specially to Daniel ;-)
2. Just for reference: Using the older (deprecated) notation for this
example, we have:
.x($1) { a:$1; b:j; c:k; }
..
<span class="x(i4)"> Doing the same with a "noisy" functional_notation
</span>
I agree with Bert that some user are not mathematically minded.. so I was
only using it as a notational alternative.. I'm expressing an idea
(semantic-notion) the syntactic details can to be improved later on (if idea
is worthy)..
Received on Friday, 24 May 2002 04:47:02 UTC