- From: Bert Bos <bert@w3.org>
- Date: Fri, 29 Mar 2002 15:13:15 +0100
- To: www-style@w3.org
- Message-ID: <15524.30331.37666.568269@jfouffa.inria.fr>
fantasai writes: > Tantek Çelik wrote: > > > > text-decoration-opacity > > I think text-decoration can be fairly grouped with text, especially since it > doesn't have a separate color property, either. (And if there were separate > opacity properties, border and outline opacity could have an initial value of > <foreground-opacity>, just as border-color has an initial value of <color>). > > > It is much simpler to introduce 2 new color value types which can then be > > used with all properties that specify a color, rather than add 5-9 new > > properties. > > > > In addition, the new color value types permit controlling the opacity of > > these pieces of elements independently of elements' children, which the > > opacity property does affect. > > Which shows the fundamental problem with declaring rgba and hsla the > solution to separating background and foreground opacity. > > Suppose I have a <div>. I want the the <div>'s background to be translucent, > but it's text should be opaque so it's easily readable. It's a reasonable > request, no? > > <div class="sidebar"> > <p>Paragraph text.... <a href="file.html">Link</a>... So <strong>DON"T > FORGET...</strong> etc. > </p> > </div> > > Your suggestion would be to set the background as a transparent color. Thus: > > .sidebar { > background: rgba(255, 255, 0, .5); > } > > Which works fine, except I also happen to have these rules in effect: > > :link, :visited { > background: #FFBB00; > color: #000033; > } > > strong { > background: #FF0000; > color: #000000; > } > > So the background on the link and emphasized notice is opaque. This is not > according to my design, and IMO, it looks bad. So now I have to write separate > rules for any elements in a sidebar, adjusting the background color's opacity > accordingly. This isn't much of a problem if I only have to deal with sidebars, > and only with links and strong emphasis. However, using this approach with a > complicated stylesheet and a large variety of elements is inelegant and prone > to mistakes. Good point. On the other hand, maybe you *do* want to have your links opaque, because they don't stand out nearly as much when the background is blended. And maybe the sidebar has 'background: rgba(255,0,0,0.5)' and you need a new rule for strong inside a sidebar anyway. You also seem to assume that the background of the link *replaces* the background of the sidebar, rather then lie on top of it (i.e., red blended with the window background). Or at least that 'background-opacity' would inherit (i.e., red blended with yellow and with the window background). The former, I believe, is against what CSS1 says, the latter would probably lead to more color blending than you bargained for: <body style="background: #99F"> <div style="background-opacity: 0.5; background: #FB0"> <p style="background: #FF0"> <em style="background: #003"> what background do I have? </em> </p> </div> It's not dark blue, it's more like olive. Some examples: Here is your example with inherited background opacity:
Here is your example as the current CSS3 color module would render it:
Here is the example I gave with inherited background opacity:
Bert -- Bert Bos ( W 3 C ) http://www.w3.org/ http://www.w3.org/people/bos/ W3C/INRIA bert@w3.org 2004 Rt des Lucioles / BP 93 +33 (0)4 92 38 76 92 06902 Sophia Antipolis Cedex, France
Attachments
- image/png attachment: fantasai.png
- image/png attachment: fantasai2.png
- image/png attachment: tmp.png
Received on Friday, 29 March 2002 09:13:19 UTC