<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thoughts From Eric &#187; CSS</title>
	<atom:link href="http://meyerweb.com/eric/thoughts/category/tech/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://meyerweb.com/eric/thoughts</link>
	<description>Things that Eric A. Meyer, CSS expert, writes about on his personal Web site; it&#039;s largely Web standards and Web technology, but also various bits of culture, politics, personal observations, and other miscellaneous stuff</description>
	<lastBuildDate>Thu, 09 Feb 2012 18:37:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Unfixed</title>
		<link>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/</link>
		<comments>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 18:37:49 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1622</guid>
		<description><![CDATA[Vendor prefixes may soon be a thing of the past, and in the worst possible way.]]></description>
			<content:encoded><![CDATA[<p>Right in the middle of AEA Atlanta—which was <em>awesome</em>, I really must say—there were two announcements that stand to invalidate (or at least greatly alter) portions of the talk I delivered.  One, which I believe came out as I was on stage, was the publication of <a href="http://www.w3.org/TR/2012/WD-css3-positioning-20120207/">the latest draft of the CSS3 Positioned Layout Module</a>.  We’ll see if it triggers change or not; I haven’t read it yet.</p>

<p>The other was the publication of <a href="http://lists.w3.org/Archives/Public/www-style/2012Feb/0313.html">the minutes of the CSS Working Group meeting in Paris</a>, where it was revealed that several vendors are about to support the <code>-webkit-</code> vendor prefix in their own very non-WebKit browsers.  Thus, to pick but a single random example, Firefox would throw a drop shadow on a heading whose entire author CSS is <code>h1 {-webkit-box-shadow: 2px 5px 3px gray;}</code>.</p>

<p>As an author, it sounds good as long as you haven’t really thought about it very hard, or if perhaps you have a very weak sense of the history of web standards and browser development.  It fits right in with the recurring question, “Why are we screwing around with prefixes when vendors should just implement properties completely correctly, or not at all?”  Those idealized end-states always sound great, but years of evidence (and reams upon reams of bug-charting material) indicate it’s an unrealistic approach.</p>

<p>As a vendor, it may be the least bad choice available in an ever-competitive marketplace.  After all, if there were a few million sites that you could render as intended if only the authors used your prefix instead of just one, which would you rather: embark on a protracted, massive awareness campaign that would probably be contradicted to death by people with their own axes to grind; or just support the damn prefix and move on with life?</p>

<p>The practical upshot is that browsers “supporting alien CSS vendor prefixes”, <a href="http://www.netmagazine.com/news/css-vendor-prefixes-threaten-open-web-121757">as Craig Grannell put it</a>, seriously cripples the whole concept of vendor prefixes.  It may well reduce them to outright pointlessness.  I am <a href="http://alistapart.com/articles/prefix-or-posthack/">on record as being a fan of vendor prefixes</a>, and furthermore as someone who advocated for the formalization of prefixing as a part of the specification-approval process.  Of course I still think I had good ideas, but those ideas are currently being sliced to death on the shoals of reality.  Fingers can point all they like, but in the end what matters is what happened, not what should have happened if only we’d been a little smarter, a little more angelic, whatever.</p>

<p>I’ve seen a proposal that vendors agree to only support other prefixes in cases where they are un-prefixing their own support.  To continue the previous example, that would mean that when Firefox starts supporting the bare <code>box-shadow</code>, they will also support <code>-webkit-box-shadow</code> (and, one presumes, <code>-ms-box-shadow</code> and <code>-o-box-shadow</code> and so on).  That would mitigate the worst of the damage, and it’s probably worth trying.  It could well buy us a few years.</p>

<p>Developers are also trying to help repair the damage before it’s too late.  Christian Heilmann has <a href="http://christianheilmann.com/2012/02/09/now-vendor-prefixes-have-become-a-problem-want-to-help-fix-it/">launched an effort to get GitHub-based projects updated</a> to stop being WebKit-only, and Aarron Gustafson <a href="http://blog.easy-designs.net/archives/2012/02/09/this-must-not-happen/">has published a UNIX command to find all your CSS files containing <code>webkit</code></a> along with a call to update anything that’s not cross-browser friendly.  Others are making similar calls and recommendations.  You could use <a href="http://leaverou.github.com/prefixfree/">PrefixFree</a> as a quick stopgap while going through the effort of doing manual updates.  You could make sure your CSS pre-processor, if that’s how you swing, is set up to do auto-prefixing.</p>

<p>Non-WebKit vendors are in a corner, and we helped put them there.  If the proposed prefix change is going to be forestalled, we have to get them out.  Doing that will take a lot of time and effort and awareness and, above all, widespread interest in doing the right thing.</p>

<p>Thus my fairly deep pessimism.  I’d love to be proven wrong, but I have to assume the vendors will push ahead with this regardless.  It’s <a href="http://meyerweb.com/eric/thoughts/2008/01/24/almost-target/">what we did at Netscape ten years ago</a>, and almost certainly would have done despite any outcry.  I don’t mean to denigrate or undermine any of the efforts I mentioned before—they’re absolutely worth doing even if every non-WebKit browser starts supporting <code>-webkit-</code> properties next week.  If nothing else, it will serve as evidence of your commitment to professional craftsmanship.  The real question is: how many of your fellow developers come close to that level of commitment?</p>

<p>And I identify that as the real question because it’s the question vendors are asking—<em>must</em> ask—themselves, and the answer serves as the compass for their course.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2012/02/09/unfixed/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>CSS Modules Throughout History</title>
		<link>http://meyerweb.com/eric/thoughts/2011/09/27/css-modules-timelines/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/09/27/css-modules-timelines/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 13:03:10 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1559</guid>
		<description><![CDATA[For very little reason other than I was curious to see what resulted, I've compiled a list of various CSS modules' version histories, and then used CSS to <a href="http://meyerweb.com/eric/css/timelines/">turn it into a set of timelines</a>.]]></description>
			<content:encoded><![CDATA[<p>For very little reason other than I was curious to see what resulted, I&#8217;ve compiled a list of various CSS modules&#8217; version histories, and then used CSS to <a href="http://meyerweb.com/eric/css/timelines/">turn it into a set of timelines</a>.  It&#8217;s kind of a low-cost way to visualize the life cycle of and energy going into various CSS modules.</p>

<p>I&#8217;ll warn you up front that as of this writing the user interaction is not ideal, and in some places the presentation suffers from too much content overlap.  This happens in timelines where lots of drafts were released in a short period of time.  (In one case, two related drafts were released on the same day!)  I intend to clean up the presentation, but for the moment I&#8217;m still fiddling with ideas.  The obvious one is to rotate every other spec name by -45 degrees, but that looked kind of awful.  I suspect I&#8217;ll end up doing some sort of timestamp comparison and if they&#8217;re too close together, toss on a class that invokes a <code>-45deg</code> rotation.  Or maybe I&#8217;ll get fancier!</p>

<p>The interaction is a little tougher to improve, given what&#8217;s being done here, but I have a few ideas for making things, if not perfect, at least less twitchy.</p>

<p>I should also note that not every module is listed as I write this:  I intentionally left off modules whose last update was 2006 or earlier.  I may add them at the end, or put them into a separate set of timelines.  The historian in me definitely wants to see them included, but the shadow of a UX person who dwells somewhere in the furthest corners of my head wanted to avoid as much clutter as possible.  We&#8217;ll see which one wins.</p>

<p>Anyway, somewhat like the <a href="http://meyerweb.com/eric/browsers/timeline-structured.html">browser release timeline</a>, which is probably going to freeze in the face of the rapid-versioning schemes that are all the rage these days, I had fun combining my love of the web and my love of history.  I should do it more often, really.  The irony is that I don&#8217;t really have the time.</p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/09/27/css-modules-timelines/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Un-fixing Fixed Elements with CSS Transforms</title>
		<link>http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 15:54:45 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1556</guid>
		<description><![CDATA[In the course of experimenting with some new artistic scripts to follow up "Spinning the Web", I ran across an interesting interaction between positioning and tranforms.]]></description>
			<content:encoded><![CDATA[<p>In the course of experimenting with some new artistic scripts to follow up &#8220;<a href="http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/">Spinning the Web</a>&#8220;, I ran across an interesting interaction between positioning and transforms.</p>

<p>Put simply: as per <a href="http://www.w3.org/TR/2009/WD-css3-2d-transforms-20091201/#introduction">the Introduction of the latest CSS 2D Transforms draft</a>, a transformed element creates a containing block for <strong>all</strong> its positioned descendants.  This occurs in the absence of any explicit positioning of the transformed element.</p>

<p>Let&#8217;s walk through that.  Say you have a document whose <code>body</code> contains nothing except a <code>position: static</code> (normal-flow) <code>div</code> that contains some absolutely-positioned descendants.  The containing block for those positioned elements will be the root element.  Nothing unusual or unexpected there.</p>

<p>But then you decide to declare <code>div {transform: rotate(10deg);}</code>.  (Or even <code>0deg</code>, which will have the same result.)  Now the <code>div</code> is the containing block for the absolutely-positioned elements that descend from it.  It&#8217;s as though transforming an element force-adds <code>position: relative</code>.  The positioned elements will rotate with their ancestor <em>and</em> be placed according to its containing block—not that of the root element.</p>

<p>Okay, so that&#8217;s a little unusual but perhaps not unexpected.  I could make arguments both ways, and some of the arguments could get pretty complex.  To pick one example, if the transformed element <em>didn&#8217;t</em> generate a containing block, how would translate transforms be handled?</p>

<p>Either way, here&#8217;s where things got really troublesome for me:  a transformed element creates a containing block <em>even for descendants that have been set to <code>position: fixed</code></em>.  In other words, the containing block for a fixed-position descendant of a transformed element is the transformed element, <em>not</em> the viewport.  Furthermore, if the transformed element is in the normal flow, it will scroll with the document <em>and the fixed-position descendants will scroll with it</em>. You can see <a href="http://meyerweb.com/eric/css/tests/css3-trans-an/nested-fixed.html">my test case</a>, where the red and blue boxes would overlap each other and stay fixed in place, except the second green <code>div</code> has been rotated.</p>

<p>Obviously this makes the fixed-position elements something less than fixed-position.  In effect, not only does the transformed element act as if it&#8217;s been force-assigned <code>position: relative</code>, the fixed descendants behave as if they&#8217;ve been force-changed to <code>position: absolute</code>. </p>

<p>I find this not only unusual and unexpected, but also a wee bit unsettling.  Personally, I think it goes too far.  Fixed-position elements should be fixed to the viewport, regardless of the transformation of their ancestors.  Of course, if you agree with my thinking there, realize that opens a whole new debate about how, or even whether, transforms of ancestors should be carried to fixed-position descendants.</p>

<p>I have my own intuitions about that, but this is definitely territory where intuitions are to be treated with caution.  There are a lot of interacting behaviors no matter what you do, and no matter what you do someone&#8217;s going to find the results baffling in some way or other.</p>

<p>But since I do have intuitions, here&#8217;s what they are:  transformed elements in the normal flow or floated do not establish containing blocks for absolutely- and fixed-position descendants.  This means that any transforms you apply to the transformed element are not applied to the positioned descendants, because transforms don&#8217;t inherit.</p>

<p>What if you want a normal-flow transformed element to be a containing block?  Use <code>position: relative</code>, same as you would if there were no transform.  And if you want the transforms to be passed on to the descendants even though no containing block is established?  The <code>inherit</code> value would work in some cases, though not all.  That&#8217;s where my approach runs aground, and I&#8217;m not yet sure how to get it back to sea.</p>

<p>Okay, so that&#8217;s what I think.  What do you think?</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Spinning the Web</title>
		<link>http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 15:19:42 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1526</guid>
		<description><![CDATA[Can CSS create art?  That's a question I set out to explore recently, and I like to think that the answer is yes, but you can judge for yourself.]]></description>
			<content:encoded><![CDATA[<p>Can CSS create art?  That&#8217;s a question I set out to explore recently, and I like to think that the answer is yes.  You can judge for yourself: <a href="http://www.flickr.com/photos/meyerweb/sets/72157626750845115/">Spinning the Web</a>, a gallery on Flickr.</p>

<a href="http://www.flickr.com/photos/meyerweb/5793617592/" title="cnn by meyerweb, on Flickr"><img src="http://farm4.static.flickr.com/3647/5793617592_8ff99b7482.jpg" width="350" height="200" alt="cnn" class="pic"/></a>

<p>To be clear, when I say &#8220;Can CSS create art?&#8221; I don&#8217;t mean that in the sense of wondering if art, or artful designs, can be accomplished with CSS.  I think we all know the answer there, and have known at least since <a href="http://csszengarden.com/">the Zen Garden</a> got rolling.  What I&#8217;m doing here is using some basic CSS to generate art, using web sites as the medium.  For the series I linked, I spun all of the elements on a page using <code>transform: rotate()</code> to see what resulted.  Any time I saw something I liked, I took a screenshot.  After I was done, I winnowed the shots down to the best ones.</p>

<p>As some of you old-schoolers will probably have recognized, I&#8217;m absolutely following in the footsteps of <a href="http://joshuadavis.com/" rel="met">Joshua Davis</a> here, and in fact my working title for this effort was &#8220;Once Upon a Browser&#8221;.  I saw Josh speak years ago, and clearly remember his description of how he generated a lot of his art.  My process is almost identical, albeit with a bit less automation and computational complexity.</p>

<p>Because this is me, I built a little commentary joke into the first images in the series.  It&#8217;s not terribly subtle, but with luck one or two of you will get the same chuckle I did.</p>

<p>I&#8217;m already thinking about variants on this theme, so there may be more series to come.  In the meantime, as I surf around I&#8217;ll stop every now and again to spin what I see.  I&#8217;ll definitely mention any new additions <a href="http://twitter.com/meyerweb/">via Twitter</a>, and new series both there and here.  And of course if you follow <a href="http://flickr.com/photos/meyerweb/">me on Flickr</a>, you&#8217;ll see new pieces as they go up.</p>

<p>I hope you enjoy them half as much as I enjoyed creating them.  <ins datetime="2011-06-03T20:41:59+00:00">And if anyone wants to use the originals as desktop wallpapers, <a href="http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/#comment-558734">as Tim proposed</a>, feel free!</ins></p>
]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/06/03/spinning-the-web/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Seeing the matrix()</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/12/seeing-the-matrix/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/12/seeing-the-matrix/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 14:41:39 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1511</guid>
		<description><![CDATA[<a href="http://easy-designs.net/">Aaron Gustafson</a> and I created a tool for anyone who wants to resolve a series of CSS transforms into a <code>matrix()</code> value representing the same end state.  Behold: <a href="http://meyerweb.com/eric/tools/matrix/">The Matrix Resolutions</a>.]]></description>
			<content:encoded><![CDATA[<p>Over the weekend, <a href="http://aaron-gustafson.com/" rel="friend colleague met">Aaron Gustafson</a> and I created a tool for anyone who wants to resolve a series of CSS transforms into a <code>matrix()</code> value representing the same end state.  Behold: <strong><a href="http://meyerweb.com/eric/tools/matrix/">The Matrix Resolutions</a></strong>.  (You knew that was coming, right?)  It should work fine in various browsers, though due to the gratuitous use of keyframe animations on the <code>html</code> element&#8217;s multiple background images it looks best in WebKit browsers.</p>

<p>The way it works is you input a series of transform functions, such as <code>translateX(22px) rotate(33deg) scale(1.13)</code>.  The end-state and its <code>matrix()</code> equivalent should update whenever you hit the space bar or the return key, or else explicitly elect to take the red pill.  If you want to wipe out what you&#8217;ve input and go back to a state of blissful ignorance, take the blue pill. </p>

<p>There is one thing to note: the <code>matrix()</code> value you get from the tool is equivalent to the end-state placement of all the transforms you input.  That value most likely does <em>not</em> create an equivalent animation, particularly if you do any rotation.  For example, animating <code>translateX(75px) rotate(1590deg) translateY(-75px)</code> will not appear the same as animating <code>matrix(-0.866025, 0.5, -0.5, -0.866025, 112.5, 64.9519)</code>.  The two values will get the element to the same destination, but via very different paths.  If you&#8217;re just transforming, not animating, then that&#8217;s irrelevant.  If you are, then you may want to stick to the transforms.</p>

<p>This tool grew out of the first <a href="http://r4g.co/">Retreats 4 Geeks</a> (which was <strong>AWESOME</strong>) just outside of Gatlinburg, TN.  After some side conversations betwen me and Aaron during the CSS training program, we hacked this together in a few hours on Saturday night.  Hey, who knows how to <em>party</em>?  Aaron of course wrote the JavaScript.  Early on we came up with the punny name, and of course once we did that the visual design was pretty well chosen for us.  A free TTF webfont (for the page title), a few background images, and a whole bunch of RGBa colors later we had arrived.  Creating the visual appearance was a lot of fun, I have to say.  CSS geeks, please feel free to view source and enjoy.  No need to say &#8220;whoa&#8221;—it&#8217;s actually not that complicated.</p>

<p>So anyway, there you go.  If you want to see the <code>matrix()</code>, remember: we can only show you <a href="http://meyerweb.com/eric/tools/matrix/">the door</a>. You&#8217;re the one that has to walk through it.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/12/seeing-the-matrix/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>CSS Pocket Reference: The Cutting Room</title>
		<link>http://meyerweb.com/eric/thoughts/2011/04/06/css-pocket-reference-the-cutting-room/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/04/06/css-pocket-reference-the-cutting-room/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 21:11:54 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1506</guid>
		<description><![CDATA[I just shipped off the last of my drafts for <cite>CSS Pocket Reference, 4th Edition</cite> to my editor.  Here are the properties I cut.]]></description>
			<content:encoded><![CDATA[<p>I just shipped off the last of my drafts for <cite>CSS Pocket Reference, 4th Edition</cite> to my editor.  In the process of writing the entries, I set up an <a href="http://meyerweb.com/eric/css/tests/css3/">ad-hoc test suite</a> and made determinations about what to document and what to cut.  That&#8217;s what you do with a book, particularly a book that&#8217;s meant to fit into a pocket.  My general guide was to cut anything that isn&#8217;t supported in any rendering engine, though in a few cases I decided to cut properties that were supported by a lone browser but had no apparent prospects of being supported by anyone else, ever.</p>

<p>For fun, and also to give fans of this or that property a chance to petition for re-inclusion, here are the properties and modules I cut.  Think of it as the blooper reel, which can be taken more than one way.  I&#8217;ve organized them by module because it&#8217;s easier that way.</p>

<ul>
<li>The <a href="http://w3.org/TR/css3-3d-transforms/#backface-visibility-property">backface-visibility</a> property from the 3D Transforms module.  This is one I&#8217;m already reconsidering, but I haven&#8217;t found any indication that anyone besides Webkit will be picking it up in the near future.  Still, I did document the rest of the 3D Transforms module so I may add this back in during the tech review stage.</li>
<li><a href="http://w3.org/TR/css3-box/#rotating"><code>rotation</code></a> and <a href="http://w3.org/TR/css3-box/#rotating"><code>rotation-point</code></a> from the CSS3 Box module.  These have been effectively replaced by the 2D Transforms module, but the Box module hasn&#8217;t been updated since that happened.</li>
<li>Everything in the <a href="http://www.w3.org/TR/css3-flexbox/">Flexible Box Layout module</a>.  There are, as of now, just too many sections bearing notes, warnings, questions, and general feelings of instability and future change for me to feel comfortable including the properties from this module.  I&#8217;m probably going to catch some flak for that.</li>
<li><a href="http://w3.org/TR/css3-grid/#grid-columns">grid-columns</a> and <a href="http://w3.org/TR/css3-grid/#grid-rows">grid-rows</a> from the Grid Positioning Module Level 3, which effectively means means excluding the entire module.  Some day maybe I&#8217;ll write a separate pocket reference just for the various CSS layout systems.</li>
<li><a href="http://w3.org/TR/css3-fonts/#font-stretch">font-stretch</a>.  Its continued exclusion saddens me, because I am exactly the sort of sheep-stealing lowlife who would programmatically stretch and compress font faces and <em>like</em> it, but so far as I can tell nobody&#8217;s supporting the property.  Alas.</li>
<li>Basically, the entirety of the <a href="http://www.w3.org/TR/css3-gcpm/">Generated Content for Paged Media module</a>.</li>
<li>The Behavioral Extensions module, which means the <a href="http://w3.org/TR/becss/#the-binding">binding</a> property as well as the <code>:bound-element</code> pseudo-class.</li>
<li>All the properties in <a href="http://www.w3.org/TR/css3-marquee/">CSS Marquee module</a>.  I&#8217;d love to see someone make a compelling case for re-instating them.</li>
<li>The following properties from <a href="http://www.w3.org/TR/css3-text/">CSS Text Level 3</a>: 
<a href="http://w3.org/TR/css3-text/#hanging-punctuation"><code>hanging-punctuation</code></a>, 
<a href="http://w3.org/TR/css3-text/#punctuation-trim"><code>punctuation-trim</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-align-last"><code>text-align-last</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-emphasis-position"><code>text-emphasis-position</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-emphasis-style"><code>text-emphasis-style</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-emphasis"><code>text-emphasis</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-justify"><code>text-justify</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-outline"><code>text-outline</code></a>, 
<a href="http://w3.org/TR/css3-text/#text-wrap"><code>text-wrap</code></a>, 
<a href="http://w3.org/TR/css3-text/#white-space-collapse"><code>white-space-collapsing</code></a>, 
and <a href="http://w3.org/TR/css3-text/#word-break"><code>word-break</code></a>.</li>
<li>The following properties from <a href="http://www.w3.org/TR/css3-ui/">the Basic User Interface module</a>, dated 2004:
<a href="http://w3.org/TR/css3-ui/#appearance0"><code>appearance</code></a>, 
<a href="http://w3.org/TR/css3-ui/#icon"><code>icon</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-down</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-left</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-right</code></a>, 
<a href="http://w3.org/TR/css3-ui/#nav-dir"><code>nav-up</code></a>, 
and <a href="http://w3.org/TR/css3-ui/#nav-index0"><code>nav-index</code></a>.</li>
<li>The <a href="http://www.w3.org/TR/css3-hyperlinks/">Hyperlink Presentation module</a>, dated 2004.</li>
<li>The <a href="http://www.w3.org/TR/css3-preslev/">Presentation Levels module</a>, dated 2003.</li>
<li><a href="http://w3.org/TR/css3-content/#moving">move-to</a> and 
<a href="http://w3.org/TR/css3-content/#the-crop">crop</a> from the CSS3 Generated and Replaced Content module, dated 2003.</li>
<li>The <a href="http://www.w3.org/TR/css3-linebox/">Line module</a>, dated 2002 and bearing my name for no reason I can recall.  The one property listed there which I kept is <code>vertical-align</code>, and I just used the CSS2.1 definition.</li>
</ul>

<p>After all that, I imagine you&#8217;re going to laugh uproariously when I tell what I <em>did</em> include:  paged and aural properties.  I know—I&#8217;m kind of poleaxed by my own double standard on that score.  I included them for historical reasons (they&#8217;ve long been included) and also because they&#8217;re potentially very useful to a more accessible future.  Besides, if we run out of pages, they&#8217;re in their own section and so very easy to cut.</p>

<p>I&#8217;m pretty sure I listed everything that I explicitly dropped, so if you spot something that I absolutely have to reinstate, here&#8217;s your chance to let me know!</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/04/06/css-pocket-reference-the-cutting-room/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Inconsistent Transitions</title>
		<link>http://meyerweb.com/eric/thoughts/2011/03/24/inconsistent-transitions/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/03/24/inconsistent-transitions/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 20:24:14 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1499</guid>
		<description><![CDATA[An interesting little test case for transitions, and the inconsistencies it reveals.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s <a href="http://meyerweb.com/eric/css/tests/css3-trans-an/transition-placement.html">an interesting little test case for transitions</a>.  Obviously you&#8217;ll need to visit it in a browser that supports CSS transitions, and additionally also CSS 2D transforms.  (I&#8217;m not aware of a browser that supports the latter without supporting the former, but your rendering may vary.)</p>

<p>In Webkit and Gecko, hovering the first <code>div</code> causes the <code>span</code> to animate a 270 degree rotation over one second, but when you unhover the <code>div</code> the <code>span</code> immediately snaps back to its starting position.  In Opera 11, the <code>span</code> is instantly transformed when you hover and instantly restored to its starting position when you unhover.</p>

<p>In all three (Webkit, Gecko, and Opera), hovering the second <code>div</code> triggers a one-second 270-degree rotation of the <code>span</code>.  Unhovering causes the rotation animation to be reversed; that is, a one-second minus-270-degree rotation—or, if you mouseout from the <code>div</code> before the animation finishes, an rotation from that angle back to the starting position.  Either way, it&#8217;s completely consistent across browsers.</p>

<p>The difference is that in the first test case, both the transform and the transition are declared on hover.  Like this (edited for clarity):</p>

<pre><code>div:hover span {
	transition: 1s transform;
	transform: rotate(270deg);
}</code></pre>

<p>In the second test case, the transform and the transition are split up like so:</p>

<pre><code>div span {
	transition: 1s transform;
}
div:hover span {
	transform: rotate(270deg);
}</code></pre>

<p>It&#8217;s an interesting set of results.  Only the second case is consistently animated across the tested browsers, but the first case only animates one direction in Webkit and Gecko.  I&#8217;m not sure which, if any, of these results is more correct than the other.  It could well be that they&#8217;re all correct, even if not consistent; or that they&#8217;re all wrong, just in different ways.</p>

<p>At any rate, the takeaway here is that you probably don&#8217;t want to apply your transition properties to the hover state of the thing you&#8217;re transitioning, but to the unhovered state instead.  I say &#8220;probably&#8221; because maybe you like that it transitions on mouseover and instantly resets on mouseout.  I don&#8217;t know that I&#8217;d rely on that behavior, though.  It feels like the kind of thing that programmer action, or even spec changes, will take away.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/03/24/inconsistent-transitions/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Edit Your Head (Styles)</title>
		<link>http://meyerweb.com/eric/thoughts/2011/03/04/edit-your-head-styles/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/03/04/edit-your-head-styles/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 16:37:31 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1485</guid>
		<description><![CDATA[<p>When I saw <a href="http://twitter.com/lloydi/status/43304383076769792">Ian Lloyd tweet the words "Cunning. Like a fox. Neat little trick!"</a> I knew I had to check it out, because Ian's a sharp one.</p>]]></description>
			<content:encoded><![CDATA[<p>When I saw <a href="http://twitter.com/lloydi/status/43304383076769792">Ian Lloyd tweet the words &#8220;Cunning. Like a fox. Neat little trick!&#8221;</a> I knew I had to check it out, because Ian&#8217;s a sharp one.  So I popped over to the linked <a href="http://css-tricks.com/">CSS-Tricks</a> article, <a href="http://css-tricks.com/show-and-edit-style-element/">Show and Edit Style Element</a>, and checked it out.  Cunning indeed!  And yet, it immediately bothered me.</p>

<p>See, the trick as posted involves editing <code>style</code> elements that have been embedded into the <code>body</code>.  That is of course <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-style-element">valid in HTML5 when you scope the <code>style</code> element</a>, but scoping wasn&#8217;t the point of the proffered demo.  And I I&#8217;ve long known that it&#8217;s simple to display <code>style</code> elements from within the <code>head</code>; it&#8217;s what I did for <a href="http://meyerweb.com/eric/css/tests/css3/">the CSS3 tests I recently published</a>, used in <a href="http://meyerweb.com/eric/tools/css/diagnostics/demo-not.html">demos of diagnostic styles</a>, and so on.  Why not do the same thing here and avoid the invalidity of an unscoped <code>body</code>-embedded <code>style</code> element?</p>

<p>Accordingly, I <a href="http://meyerweb.com/eric/css/tests/edit-styles.html">created my own variant demo</a>, where you can edit the <code>head</code>-embedded styles directly.  While I was at it, I used another favorite trick of mine: I took the CSS used to make the styles appear in the browser and put them in their own style sheet that <em>doesn&#8217;t</em> get shown.  Usually I <code>id</code> the style sheet to be displayed and style based on that.  This time I had a better hook, in that the <code>style</code> element to be edited already had a <code>contenteditable</code> attribute.  So:</p>

<pre><code>head, style[contenteditable] {display: block;}
style[contenteditable] {
  font-family: monospace; white-space: pre; padding: 0.5em;
  border: 1px dotted red; background: white;}
</code></pre>

<p>Yay attribute selection!</p>

<p>Feel free to have fun editing the styles embedded in the document from within the document.  As usual, do so at your own risk, no warranty is expressed or implied, not liable for damages arising from your use or failure to use, not a flying toy, blah blah blah.  Share and enjoy!</p>

<p>(Incidentally, if anyone knows a markup- or CSS-based way to get around the Shift-Return-for-newline requirement in Gecko browsers, I&#8217;d love to hear about it.)</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/03/04/edit-your-head-styles/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>CSS3 Tests</title>
		<link>http://meyerweb.com/eric/thoughts/2011/02/11/css3-tests/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/02/11/css3-tests/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 17:17:17 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1481</guid>
		<description><![CDATA[Throwing open the doors on a smallish but hopefully useful set of CSS3 tests, complete with prefixed and non-prefixed testing.]]></description>
			<content:encoded><![CDATA[<p>Over the past couple of months, I&#8217;ve been hacking together <a href="http://meyerweb.com/eric/css/tests/css3/">some CSS3 tests</a>.  I did this to try to figure out what should be included in the upcoming fourth edition of the <cite>CSS Pocket Reference</cite> (and thereafter <cite>CSS: The Definitive Guide</cite>) and didn&#8217;t plan to do anything public with them, but at this point, I figure what the heck.  Maybe they&#8217;ll be of interest to others.</p>

<p>I was especially interested by the results for <a href="http://meyerweb.com/eric/css/tests/css3/show.php?p=list-style-type">list-style-type</a>, where I found some small spots of support for various types in various browsers.  In contrast, WebKit supports most of the CSS3 types, so far as I can tell, though in my install several types were apparently mangled by a lack of appropriate fonts.</p>

<p>If you dig in, you&#8217;ll discover that the individual tests are all poured through some PHP.  The reason for this is that the base test pages (which are straight HTML; see for example <a href="http://meyerweb.com/eric/css/tests/css3/list-style-type.html">the list-style-type base</a>) include neither navigation links nor vendor prefixes.  That&#8217;s what the PHP handles.  It&#8217;s a bit clumsy, URL-wise, and that&#8217;s why <a href="http://meyerweb.com/eric/css/tests/css3/">the index page of the tests</a> warns that the tests&#8217; URLs could change in the future.  Not the index page: that will remain cool for as long as I have anything to say about it.  I just can&#8217;t swear off tinkering with the URLs of the tests for the time being.  It&#8217;s entirely possible that at some point in the future I&#8217;ll ice them down, but no guarantees.</p>

<p>I&#8217;m tossing these into the public sphere for three reasons.  The first is that they might be useful to other people, and I&#8217;m always in favor of sharing stuff that might be useful.  The second is that I may have committed grievous errors of fact, and many eyes make errors obvious.  If you find an error, please let me know.  I prefer that such reports be left as comments here since it lets many eyes evaluate the error reports too, but I&#8217;ll accept private mail as well.</p>

<p>The third is that it represents another turn of the wheel.  I started my CSS career building tests to see what browsers got right and wrong, and every so often I come back to that same fundamental act.  The other times I&#8217;ve done so, I&#8217;ve published what resulted.  This time, I&#8217;m publishing a little earlier and little more in the raw, so to speak, but it&#8217;s still the same impulse&#8212;and by now, it&#8217;s Tradition.</p>

<p>So I hope you enjoy, or at least find useful, these tests and whatever other tests get built in the future!</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/02/11/css3-tests/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>CSS Editors Leaderboard</title>
		<link>http://meyerweb.com/eric/thoughts/2011/02/04/css-editors-leaderboard/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/02/04/css-editors-leaderboard/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 20:15:29 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Standards]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1478</guid>
		<description><![CDATA[My attempt to rank the various editors of CSS modules based on the current process status of their modules, how current the modules are, and so on.]]></description>
			<content:encoded><![CDATA[<p>I recently decided to create a <a href="http://meyerweb.com/eric/css/editors/">CSS Editors Leaderboard</a>, which is my attempt to rank the various editors of CSS modules based on the current process status of their modules, how current the modules are, and so on.  It&#8217;s kind of a turn of the wheel for me, given that I started out my CSS career with browser support leaderboards.  Now you can see who&#8217;s amassed the most spec points, and who&#8217;s made the most effective use of their time and energy.  Who knows?  Maybe some editors will try to game the system by pushing their specs along the process track.  That&#8217;d be just <em>awful</em>.</p>

<p>One thing of note: I decided to write the leaderboard script so that it directly parses an HTML file to figure out the rankings.  You can <a href="http://meyerweb.com/eric/css/editors/editors.html">see the file yourself</a>, if you like.  At the moment it&#8217;s just a bunch of <tt>dl</tt>s, but at some point I suspect I&#8217;ll convert it to a table.  The advantage is that it&#8217;s easier for other people to fact-check the source data this way: just load it up in a browser.</p>

<p>I thought about just parsing specs directly but it seemed like overkill to load the entirety of the CSS2.1 module just to figure out the process status, publication date, and editor list.  And then do that same thing for every one of the 38 tracked modules.  This way I have the leaderboard <em>and</em> a central summary of the modules&#8217; status, and hopefully the latter will be even more human-readable in the future.</p>

<p>Anyway, it was a fun little project and now it&#8217;s loose in the world.  Enjoy.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/02/04/css-editors-leaderboard/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Reset v2.0</title>
		<link>http://meyerweb.com/eric/thoughts/2011/01/26/reset-v2-0/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/01/26/reset-v2-0/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 18:52:08 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1473</guid>
		<description><![CDATA[Earlier today, I updated the "meyerweb reset" to v2.0 final.]]></description>
			<content:encoded><![CDATA[<p>Earlier today, I updated the <a href="http://meyerweb.com/eric/tools/css/reset/">CSS Tools: Reset CSS page</a> to list the final version of Reset v2.0, as well as updated the <a href="http://meyerweb.com/eric/tools/css/reset/reset.css"><code>reset.css</code></a> file in that directory to be v2.0.  (I wonder how many hotlinkers <em>that</em> will surprise.)  In other words, it&#8217;s been shipped.  Any subsequent changes will trigger version number changes.</p>

<p>There is one small change I made between <a href="http://meyerweb.com/eric/thoughts/2011/01/10/reset-2-0b2-paring-down/">2.0b2</a> and 2.0 final, which is the replacement of the &#8220;THIS IS BETA&#8221; warning text with an explicit lack of license.  The reset CSS has been in the public domain ever since I first published it, and the Reset CSS page explicitly said it was, but the file itself never said one way or the other.  Now it does.</p>

<p>Thanks to everyone who contributed their thoughts and perspectives on the new reset.  Here&#8217;s to progress!</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/01/26/reset-v2-0/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Border Imaging Redux</title>
		<link>http://meyerweb.com/eric/thoughts/2011/01/26/border-imaging-redux/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/01/26/border-imaging-redux/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 17:12:08 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1467</guid>
		<description><![CDATA[A followup on <a href="http://meyerweb.com/eric/thoughts/2011/01/24/border-imaging/">my <code>border-image</code> post</a> and an idea for a way forward.]]></description>
			<content:encoded><![CDATA[<p>To follow up on <a href="http://meyerweb.com/eric/thoughts/2011/01/24/border-imaging/">my <code>border-image</code> post from Monday</a>, it turns out that as currently written, <a href="http://www.w3.org/TR/css3-background/#border-image-slice"><code>border-image</code></a> literally <em>cannot</em> take an image of a single symbol and repeat it around the border of an element.  Instead, you have to create an image with at least eight copies of the symbol in a 3&#215;3 grid pattern.</p>

<p>Note that <em>allowing</em> a 3&#215;3 grid pattern for <code>border-image</code> is potentially very useful, as it permits the creation of sophisticated border &#8216;frames&#8217; with a single image.  The objection I have is that it&#8217;s <em>required</em>, even in simple cases like the one I described in the previous post.</p>

<p>The reason this 3&#215;3 pattern is required is found in the description of <a href="http://www.w3.org/TR/css3-background/#border-image-slice"><code>border-image-slice</code></a>, which states:</p>

<blockquote><p> The regions given by the &#8216;<a href="http://www.w3.org/TR/css3-background/#border-image-slice">border-image-slice</a>&#8216; values may overlap. However if the sum of the right and left widths is equal to or greater than the width of the image, the images for the top and bottom edge and the middle part are empty, which has the same effect as if a nonempty transparent image had been specified for those parts. Analogously for the top and bottom values.</p></blockquote>

<p>That means that if you specify, for example, a slice distance of <code>100%</code> (the default) then the top, bottom, and side portions of the border will be completely empty.  Only the corners will get the image.  The same thing will happen in any case where the sum of two slices along the same axis exceeds the dimension of the image along that same axis.  In other words, if the defined left and right slice distances add up to more than the width of the image, then both slices are made completely transparent.  Ditto for top, bottom, and height.</p>

<p>It seems to me that the easy way to make it possible to repeat a single-symbol image is to change that bit to instead say something along these lines:</p>

<blockquote><p>The regions given by the &#8216;<a href="http://www.w3.org/TR/css3-background/#border-image-slice">border-image-slice</a>&#8216; values may overlap.  Values greater than the intrinsic dimensions of the image are &#8220;clipped&#8221; to the intrinsic dimensions of the image.  Values greater than <code>100%</code> are treated as <code>100%</code>.  Negative values are treated as <code>0</code>.</p></blockquote>

<p>Or maybe going beyond 100% or the image dimension means filling the remainder with transparency&#8212;I&#8217;m not sure yet which would be better.  I&#8217;d be interested to know if anyone has a compelling use case for the &#8220;fill transparent past 100%&#8221; behavior.</p>

<p>Anyway, when I <a href="http://lists.w3.org/Archives/Public/www-style/2011Jan/0512.html">raised the beginnings of this as a possibility on www-style</a>, I <a href="http://lists.w3.org/Archives/Public/www-style/2011Jan/0513.html">was told that an &#8220;older and less mature&#8221; draft did exactly that</a>, but it was at some point changed to the current behavior.  My inquiry as to the reasons for that change have so far been met with silence, so if necessary I&#8217;ll raise it again in a few days.</p>

<p>Commenters found that WebKit browsers can be made, with a very specific value pattern, be made to repeat a single-symbol image all the way around a border.  It turns out that&#8217;s only because WebKit implements the earlier version of the specification and it hasn&#8217;t since been updated.  Personally, I hope it retains its behavior (with improvements to make it less finicky) and the other rendering engines change to match it, not the other way around.  But to make that happen, I suspect the spec will need to be changed.  Here&#8217;s hoping.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/01/26/border-imaging-redux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Border Imaging</title>
		<link>http://meyerweb.com/eric/thoughts/2011/01/24/border-imaging/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/01/24/border-imaging/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 19:14:19 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1464</guid>
		<description><![CDATA[As I dig into the nooks and crannies of the various CSS3 modules, I've come across something that seems like I should be able to do, but I can't make it work in browsers.]]></description>
			<content:encoded><![CDATA[<p>As I dig into the nooks and crannies of the various CSS3 modules, I&#8217;ve come across something that seems like I should be able to do, but I can&#8217;t make it work in browsers.  Now, I know as well as anyone that if you try to do something and browsers won&#8217;t do it, it might well be the fault of the browsers.  Particularly if you can get various browsers to fail differently on the same declaration, as I have.  But this is, bizarrely, complicated enough that it&#8217;s hard to be sure if it&#8217;s me or them.</p>

<p>So allow me to pose this to you as a challenge.  Given the following ideal rendering, how would you arrive at the depicted result using the single 5-pixel-by-5-pixel image shown within the content?</p>

<p class="pic">
<img src="http://meyerweb.com/pix/2011/border-image-question.png" alt="" />
</p>

<p>Note that it doesn&#8217;t have to be quite as clean as this&#8212;if there are partial diamonds adjacent to the corners where repeated images get clipped, that&#8217;s fine.</p>

<p>Should you answer, please be clear which type of answer you&#8217;re giving:</p>

<ol>
<li>What the specification says you should write to make this happen.  Note to those tackling this fresh: I think the descriptive prose for <code>border-image-slice</code> (yes, <code>-slice</code>) makes this harder than it seems, but I could be wrong.</li>
<li>What you wrote to get browsers to do it consistently.  (Safari, Firefox, and Opera at a minimum.  Did IE9 get border images yet?  Vendor prefixes not required unless you had to write different values for different browsers.)</li>
<li>Both spec- and browser-friendly, which is of course what we really want.</li>
</ol>

<p>I&#8217;m really curious to see if anyone cracks this one, because that person I will grill mercilessly until either I understand what&#8217;s happening or one of us starts plotting to have the other killed.</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/01/24/border-imaging/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>CSS3 in HTML5? HTML5 in CSS3!</title>
		<link>http://meyerweb.com/eric/thoughts/2011/01/18/css3-in-html5-html5-in-css3/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/01/18/css3-in-html5-html5-in-css3/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 20:51:13 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1455</guid>
		<description><![CDATA[I figure, hey, given that CSS3 is now a branded part of your nutritious HTML5 breakfast, why not go with the flow?  So I did.]]></description>
			<content:encoded><![CDATA[<img src="http://meyerweb.com/pix/2011/HTML5_Logo_128.png" alt="HTML5 logo" class="pic"/>
<p>
The W3C unveiled a new logo and branding strategy today.  (You might have heard.)  It brings all the deliciousness of a Soviet-era Transformers logo to the yummy conflation of several related technologies!  Did you get your WOFF in <em>my</em> HTML, or did I get my CSS all over <em>your</em> HTML?
</p>
<p>
As per usual, a lot of people have said a lot of things about this.  For my part, I figure, hey, given that CSS3 is now a branded part of your nutritious HTML5 breakfast, why not go with the flow?  <a href="http://meyerweb.com/eric/html-xhtml/html5logo/">So I did.</a>  You&#8217;re welcome.
</p>
<p>
(Disclaimer: it&#8217;ll look best in recent WebKit, Gecko, or Opera browsers, but it&#8217;s at least comprehensible in them what doesn&#8217;t yet support CSS transforms.  May not be valid in all jurisdictions.  Not a flying toy.)
</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/01/18/css3-in-html5-html5-in-css3/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Retreat!</title>
		<link>http://meyerweb.com/eric/thoughts/2011/01/13/retreat/</link>
		<comments>http://meyerweb.com/eric/thoughts/2011/01/13/retreat/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 16:21:26 +0000</pubDate>
		<dc:creator>Eric Meyer</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://meyerweb.com/eric/thoughts/?p=1451</guid>
		<description><![CDATA[Hey, any interest in spending a few days in a luxury lodge in the Great Smoky Mountains this coming spring with me and Aaron Gustafson, learning about and working with HTML5 and CSS3?]]></description>
			<content:encoded><![CDATA[<p>Hey, any interest in spending a few days in a luxury lodge in the Great Smoky Mountains this coming spring with me and Aaron Gustafson, learning about and working with HTML5 and CSS3?  Then you might want to sign up for <a href="http://retreats4geeks.com/events/2011/html5-css3/">Retreats 4 Geeks: HTML5 &amp; CSS3</a> in the very near future, because it was announced late yesterday and as of now there are only six spots still available.  It&#8217;ll be a very focused two days of training and a day of hands-on project work with a very small group of people, and it&#8217;ll be a ton of fun!</p>

<p>Personally I&#8217;m looking forward to this for many reasons, but two stand out:  this sort of very-small-group training and team project work setup is a new thing for me, and it&#8217;s the sort of thing I&#8217;ve thought about doing on and off for more than a decade but never quite found the time to do.  Aaron, thankfully, <em>did</em> find the time and I&#8217;m honored that he asked me to take part.  I hope I&#8217;ll see some of you this April in Tennessee!</p>]]></content:encoded>
			<wfw:commentRss>http://meyerweb.com/eric/thoughts/2011/01/13/retreat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
