- From: Michael Day <mikeday@yeslogic.com>
- Date: Mon, 21 Apr 2003 13:59:07 +1000 (EST)
- To: www-style@w3.org
Hi, It seems that :link and :visited have confusing implications due to the fact that they are mutually exclusive. :link applies to links. This is straightforward and as it should be. However :link does not apply to links that have been traversed by the user agent (visited), even those where the endpoint of the link was reached by some other route. This behaviour undermines the meaning of :link and also makes no sense by itself, as "visited" tells you nothing about the element it applies to in the way that "root" or "nth-child" does. Consider :link and :link(visited). The first would *always* apply to anything that was a link, whether the target of the link had been visited or not. The second would apply to links where the target had been visited. It clearly still applies to link elements, not just any element, and the thing that has been visited is the link, not the element. This is extensible to :link(unvisited), :link(local), :link(external), :link(cached), :link(self), or whatever other crazy values people may be interested in (cached links and self links were recently brought up on the list, and making a new pseudo-class like :cached or :self would only serve to further muddy the waters. What does it mean for an element to be cached? Or self?). Sadly, perhaps it is too late to change the mutually exclusive nature of :link and :visited, given their implementation and use over the years. A compromise could be to deprecate :link and :visited and introduce :link() and :link(visited), which would not invalidate existing implementations. Just a thought :) Michael Day YesLogic Pty. Ltd.
Received on Sunday, 20 April 2003 22:42:02 UTC