- From: Ian Hickson <exxieh@bath.ac.uk>
- Date: Thu, 4 Jun 1998 23:25:00 +0100
- To: Simon Richter <geier@psi5.com>, www-style@w3.org
> Would it make sense to have a selector that makes the rules apply only
> if a certain other element is present/not present?
> This could be laid out as a letter, no problem, but if the sender wanted
> to add something like a company logo, the layout would need some
> corrections, which could be made in a special rule which would only
> apply if a IMG.logo was present.
Why not just apply the rule to the IMG.logo element? (position it, etc).
However, I do like the idea of a selector which applies to elements matching
some condition based on other information gathered from the tree.
What about this: A pseudo-class like the :lang() pseudo-class, which accepts
as parameter a css selector. If the selector given as a paramter applies to
anything, then the rule applies to the main selector.
Eg:
BODY.letter:conditional(BODY IMG.logo) { margin-top: 2em; }
applies to BODY elements with class "letter" when there is an element IMG
with class "logo" in the document tree.
Other example:
BODY H1 { font-size: 200%; }
BODY H1:conditional(BODY H2) { font-size: 400%; }
H1 is twice as big when there is an H2 in the document.
This begs for another keyword - ':main-selector' or some such - which
matches the element(s) matched by the main selector.
BODY P:conditional(:main-selector + IMG) { text-align: center; }
Centers paragraphs which appear before images.
BODY FORM:conditional(:main-selector > INPUT[type=submit])
BUTTON.javascriptsubmit { display:none }
Hides BUTTON elements of class "javascriptsubmit" when they are contained by
a FORM element which contains as a direct child an INPUT element with the
"type" attribute equal to "submit".
Alternative names instead of :conditional() might be
:condition()
:present()
:selector-present()
>(BTW: Is there a
>:first-page pseudo-class?)
Yes. IIRC, @page :first {}
--
Ian Hickson
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12 Info: www.geekcode.com
GIT/M/S d->-- s+: a--->? C++(+++)>$ U>*++++ P L+>+++++ E(+)>+++ W+++ N(+) o?
K? w@ O- !M V- PS+ PE- Y+ PGP>+ t 5+++>++++ X- R+(+++) tv b++(+++) DI++
D++(---)>++++ G>+++ e(*)>+++++ h!()(--) !r y?
------END GEEK CODE BLOCK------
Received on Thursday, 4 June 1998 18:25:55 UTC