- From: Bjoern Hoehrmann <derhoermi@gmx.net>
- Date: Fri, 19 Oct 2001 04:59:58 +0200
- To: www-style@w3.org
Hi,
I tried to finde some appropriate changes to deal with XPointers and
made some other corrections, but see below.
Re-worded section in the selectors module:
6.6.2 The target pseudo-class :target
URI references may contain additional reference information,
identifying a certain portion of the resource. These URI references
end with a number sign followed by an identifier for this portion
(called the fragment identifier).
For instance in HTML, fragment identifiers refer to a certain element
in the document. The following URI reference points to an anchor named
'march2001' in an HTML document:
http://www.example.org/news.html#march2001
The indentified portion can be selected using the :target
pseudo-class:
p.note:target
selects a 'p' element of class 'note' that is the target element of
the referring URI reference.
CSS examples of use of the :target pseudo-class:
*:target { border: thin dotted red }
*:target::before { content: url(target.png) }
Support for this selector may be limited to the level of support of
the fragment identification mechanism.
Changes include:
* defused the definition of what a fragment identifier refers to to
consider the case of XPointers that refer to several
locations/fragments/etc.
* changed 'URI' to 'URI reference' (if it has a fragment identifier,
it's a URI reference, not n URI, see RFC 2396 for the definition)
* unquoted 'number sign', it's the official Unicode name for the
character, quoting seems to be inappropriate
* changed the example URI (having a 'html' directory doesn't really
make sense, 'top.html' implies a badly named frame and underscores
are ugly)
* example => examples
* at the same level of specifity, authors should always specify fore-
and background-color, hence the 'color: red' declaration was changed
to use the border property
* added note on limited support; if an implementation does not support
XPointers, it cannot support :target for XPointers. For example,
implementations may only support a subset of XPointers (typically
the abbreviated form #id for the XPointer #xpointer(id('id'))).
I am no XPointer expert, but I remember it should be possible to define
XPointers that select e.g text spanning across multiple elements, e.g.
<p>...<em>...</em>...</p>
^^^^^^^^
Using :target we can select this weired fragment, but CSS3 selectors are
supposed to select something that makes a box in the rendering model,
hence we would have some overlapping boxes here (em, p, :target). Hmm,
wait, :target is a pseudo-class, the abbreviated form :target really is
*|*:target
thus only a subset of XPointers could be used in combination with
:target, i.e. only XPointers that select element node sets, thus we
won't have the problem of overlapping boxes here. I think this is not
intended, since Chris Lilley explicitly mentions substring selection in
his reply to [1]. What to do about it?
* restrict :target to element node sets
* modify semantics of type/universal selectors in :target context
* chose some other representation for this selector, i.e. some new
syntax magic like or an at-rule like
@target { border: solid thick blue }
[1] http://lists.w3.org/Archives/Public/www-style/2001Apr/0100.html
regards,
--
Björn Höhrmann { mailto:bjoern@hoehrmann.de } http://www.bjoernsworld.de
am Badedeich 7 } Telefon: +49(0)4667/981028 { http://bjoern.hoehrmann.de
25899 Dagebüll { PGP Pub. KeyID: 0xA4357E78 } http://www.learn.to/quote/
Received on Thursday, 18 October 2001 23:00:54 UTC