- From: Christoph P�per <christoph.paeper@crissov.de>
- Date: Wed, 15 Feb 2012 21:23:00 +0100
- To: www-style list <www-style@w3.org>
fantasai: > - Need a URL expert to review http://dev.w3.org/csswg/selectors4/#local-pseudo I�m not one, but please let me add some thought anyway. Most (absolute) Web addresses that are used within documents that have CSS stylesheets attached to them use a subset of the following pattern scheme �:� �//� [ creds �@� ]? server [ �/� path ]? [ �?� query ]? [ �#� fragment ]? where scheme > protocol creds := user [ �:� password ]? server := ___domain [ �:� port ]? ___domain := name | number name := [ level �.� ]+ level # DNS hierarchic number := [ bytedigit �.� ]**4 # IPv4 numeric address | [ �[� [ hexdigit**4 �:� ]**7 hexdigit**4 �]� ] # simplified IPv6 path := [ folder �/� ]* [ file [ �.� ext ]* ]? query := key [ �=� value ]? [ [�;�/�&�] key [ �=� value ]? ]* Using the current design of �:local-link� and �:local-link(<number>)� you can match for anything on the same �server� (0) and further specify this with the required level of matching folders in the path hierarchy, starting at the top (i.e. left). This doesn�t cover the following common patterns, sometimes considered �local�: a) 1) en.example.tld de.example.tld 2) www.example.tld blog.example.tld b) example.com example.org c) combinations of a) and b) d) http://example.tld https://example.tld ftp://example.tld e) example.tld:80 example.tld (which defaults to 80) f) localhost 127.0.0.1 ::::127.0.0.1 etc. I�m not sure �:local-link(0)� ignores �userinfo�, e.g. email addresses, g) alice@example.tld bob@example.tld example.tld Therefore I think Selectors4 should only add �:local-link� without parentheses and parameter. Selectors5 should add �:same-link()� or some such where you can specify which parts should match. The first parameter names address parts that must match, the second parameter � they are separated by a comma � lists parts that may mismatch (and don�t by default). The second parameter is optional. The �path� and �___domain� keywords may be followed by either a positive number (starting at their boundary at �/�) or negative number (starting at the most specific level), paths are divided by �/� (maybe allow �\� and �:� too), domains are divided by �.� or �:� (IPv6). (Maybe add �.� separated �ext�, too, for �index.html.en� / �index.html.de�.) The number is in an+b form, known from �:nth-*�. a) :same-link(___domain-name 1 2) b) :same-link(___domain-name 2) c) :same-link(___domain-name 2) d) :same-link(___domain-name, scheme) e) :same-link(___domain-name, port) f) :same-link(___domain) g) :same-link(___domain-name, user) �:local-link� equals �:same-link(___domain-name path)�. This proposal does not make it possible to include certain TLDs and exclude others. It�s also not thought through to the fullest extent.
Received on Wednesday, 15 February 2012 20:23:29 UTC