- From: Brad Kemper <brkemper@comcast.net>
- Date: Sat, 5 Apr 2008 17:14:24 -0700
- To: fantasai <fantasai.lists@inkedblade.net>, Alan Gresley <alan@css-class.com>, Anne van Kesteren <annevk@opera.com>, "www-style@w3.org List" <www-style@w3.org>
- Message-Id: <08189915-6ADB-474D-B4F0-3A1DF4B2B1C2@comcast.net>
On Apr 4, 2008, at 7:29 PM, Brad Kemper wrote: >> I think you misunderstood me a little. I am still talking about >> cases where images, svg, and the like (perhaps even external style >> sheets) don't load, especially when they are used for backgrounds >> and content (the most common use case anyway) for but where other >> properties are set with expectation that they are available. So, >> for instance: >> >> #myElement { >> background: url(black_shape_with_writing.png) transparent no-repeat; >> color: white; >> font-size:18px; >> content: content; >> } >> #myElement:not-loaded { >> background-color: black; >> color:yellow; >> font-size:10px; >> content: "not loaded yet"; >> } >> > > So the main difference with the way I have it is that if, for > instance, a background fails to load, that can be mitigated using > any number of properties. It wouldn't limit you to just using other > background properties (just because they happen to be part of the > background shorthand) in order to rectify the situation. A couple more use cases: You want to use a super-condensed uploaded font, which will allow you to have a single line of text in a fixed width space. But if it doesn't load for whatever reason, then you want to use a much shorter font-size so it can fit on 2 lines: @font-face { src:url("empire.ttf"); font-family: empire; } h1 { font-family: empire; font-size: 48px; } h1:not-loaded(font-family) { font-family: arial,helvetica; font-weight: bold; font-size: 20px; } Or, if a foreground image doesn't load, you might want something completely different to be shown: #gallery img { display:block; } #gallery img:not-loaded { content: "image not loaded: " attr(alt); color: yellow; background-color: black; } I suppose this sort of thing could be done in some cases with media queries, if the media features on those could be extended to include checking for external resource loading. Something like this: @font-face { src:url("empire.ttf"); font-family: empire; } h1 { font-family: empire; font-size: 48px; } @media all and (src: ur("empire.ttf")) { h1 { font-family: arial,helvetica; font-weight: bold; font-size: 20px; } } Or, getting back to backgrounds: #myElement { background: url(black_shape_with_writing.png) transparent no-repeat; color: white; font-size:18px; content: content; } @media all and (src: url(black_shape_with_writing.png)) { #myElement { background-color: black; color: yellow; font-size: 10px; content: "some other text to match what was on the graphic"; } } I'd be pretty happy with that, actually, although I could understand why people might be reticent to add it to Media Queries in the CR phase. Would it "clarify its meaning" to say that the list of media features is a minimal requirement and not an exhaustive list? The line about "This specification defines media features usable with visual and tactile devices. Similarly, media features can be defined for aural media types" implies that it is not a complete list and that other features can still be defined.
Received on Sunday, 6 April 2008 00:15:02 UTC