[whatwg] <imgset> responsive imgs proposition (Re: The src-N proposal)
Bruno Racineux
bruno at hexanet.net
Tue Nov 12 16:33:05 PST 2013
On 11/12/13 12:11 AM, "Adam Barth" <w3c at adambarth.com> wrote:
>On Tue, Nov 12, 2013 at 12:08 AM, Jukka K. Korpela <jkorpela at cs.tut.fi>
>wrote:
>> 2013-11-12 9:58, Adam Barth wrote:
>>> Unfortunately, we can't add new tags to head. If the parser sees a
>>> tag it doesn't recognize in the head, it creates a fake body tag and
>>> pushes the tag down into the body.
>>
>> But you could use <style type=text/foobar>...</style>, with a suitable
>>value
>> for foobar, like x-imgset. This could even be handled with a polyfill
>>in old
>> browsers (JavaScript code that reads such elements and interprets their
>> content).
>
>Maybe there's a CSS solution to this problem? Do we just need to make
>the preload scanner smarter about interpreting CSS?
The style element can do. How about the following css like approach then:
<style type="text/x-imgset">
.set-1 {
imgset: small 150 1x, medium 200 1x, large 300 1x 150 2x;
pattern: "/(?<=\-)(.*)(?=\.)/s"; <--- that or a template model
sizes: 1x,2x;
}
:tablet{
media: (min-width: 568px) and (max-width: 768px);
}
:phone{
media: (min-width: 320px) and (max-width: 568px);
}
</style>
It requires the pre-loader to parse some inline css subset, but only a
limited semantic and fairly small, not a css presentational one. The MQ
syntax remains the same as CSS, and they are tokenized by imgset which put
them away from the DOM.
The image becomes:
<img width="300" height="100" src="logo-large.jpg" imgset="set-1: small
(phone) medium (tablet) large">
Or perhaps combine this new language as css4 classes and pseudo selectors
if feasible, where you can refer to MQs with pseudo classes for the
presentational aspect like:
header:tablet{
/*new style*/
}
That would be a very flexible way to deal with media queries too...
More information about the whatwg
mailing list