- From: Brad Kemper <brkemper.comcast@gmail.com>
- Date: Mon, 8 Sep 2008 20:52:31 -0700
- To: fantasai <fantasai.lists@inkedblade.net>
- Cc: www-style@w3.org
On Sep 8, 2008, at 6:55 PM, fantasai wrote: > Peter: I think the thing you match against the original text. Me too. > David: Then you have to merge the replacements. > David: What happens if your replacements overlap? E.g. you replace > "Soviet Union" and you replace "Union". > Howcome: You define a sequence. There's no infinite loop here. Yes, like this: <p>Soviet Union</p> p::text("Soviet Union") { content: "Russia"; } /* result: Russia */ html > body p::text("Union") { content: "Confederacy"; } /* end result still: Russia */ /* longest match wins, even with stronger selector weight */ p::text("Soviet Union") { content: "SSR"; } /* result: SSR */ /* this rule overrides the first one */ A different case for same HTML part: p::text("Union") { content: "Confederacy"; } /* result: Soviet Confederacy */ p::text("Soviet Confederacy") { content: "Russia"; } /* result still: Soviet Confederacy */ /* no matching against replacement content */ p::text("Soviet Union") { content: "Russia"; } /* end result still: Soviet Confederacy */ /* rule is too late. "Soviet Union" has already been replaced */ And with this HTML part: <p>Soviet <b>Union</b></p> then p::text("Soviet Union") would NOT match, because it crosses a tag boundary. > Ishida: What is your use case here? > [ ...clipped... ] > Peter: I can see you using it in a collaborative process when > someone scans > text and posts it, someone else writes a style sheet for it. Or you are using licensed content where you don't get to change the HTML, but you do get to provide a style sheet, and you want to change some things to match your house style guide ("style guide" refers to language standardization in this case, not CSS per se). This kind of thing comes up for me all the time. Replacing a CSS file is instantaneous almost, but getting text changes is like pulling teeth, and takes forever. Even when legal responsibility of what the text says is not an issue. *::text("Log On") { content: "Sign On"; } *::text("User Name") { content: "User ID"; } *::text("colour") { content: "color"; } *::text("biscuit") { content: "cookie"; } *::text("home banking") { content: "online banking"; } *::text("Calif.") { content: "CA"; } > Håkon: The replacements on ancestors would happen before > replacements on > descendants. > Elika: This shouldn't be in CSS, so you can have all the declarations > apply rather than having them override each other by > cascading and > inheritance. I think it could still work well with cascading and inheritance. > Steve: Should record: with the selector approach, you have the > overlap > problem. > <dbaron> *:text("Soviet") { content: "CEI"; } > David: If you make this an inherited property, then you have more > overriding > happening and you don't have these problems. > David: Only one text-replace value ever applies to a given run of > text. Another benefit of the selector approach is that it is more useful than to just use it for content replacement. For instance, if I wanted my company name to always be bold and red: *::text("MyCompany") { font-weight: bold; color: red; } The use cases for that sort of thing are even greater than for all-out replacement, IMO.
Received on Tuesday, 9 September 2008 03:53:10 UTC