<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0"><channel><title>CSS-Tricks</title> <link>http://css-tricks.com</link> <description>Tips, Tricks, and Techniques on using Cascading Style Sheets.</description> <lastBuildDate>Fri, 30 Jul 2010 18:40:40 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CssTricks" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="csstricks" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">CssTricks</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Guest on jQuery Podcast</title><link>http://css-tricks.com/guest-on-jquery-podcast/</link> <comments>http://css-tricks.com/guest-on-jquery-podcast/#comments</comments> <pubDate>Fri, 30 Jul 2010 18:40:40 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6940</guid> <description><![CDATA[I had the honor of being on the jQuery Podcast #30 with Ralph Whitbeck and Doug Neiner. We talk about some of the different parts of CSS-Tricks, the jQuery conference, and the difference between designer and developers. We also talk about my new job at Wufoo and specifically the Wufoo jQuery plugin and the interesting [...]]]></description> <content:encoded><![CDATA[<p>I had the honor of being on the <a href="http://blog.jquery.com/2010/07/30/the-official-jquery-podcast-episode-30-chris-coyier/">jQuery Podcast #30</a> with <a href="http://ralphwhitbeck.com/">Ralph Whitbeck</a> and <a href="http://dougneiner.com/">Doug Neiner</a>. We talk about some of the different parts of CSS-Tricks, the jQuery conference, and the difference between designer and developers. We also talk about my new job at Wufoo and specifically the <a href="http://github.com/wufoo/Wufoo-API-Wrappers/tree/master/jquery/">Wufoo jQuery plugin</a> and the interesting issues that came up with that.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/guest-on-jquery-podcast/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>CSS Run-in Display Value</title><link>http://css-tricks.com/run-in/</link> <comments>http://css-tricks.com/run-in/#comments</comments> <pubDate>Thu, 29 Jul 2010 12:52:03 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=596</guid> <description><![CDATA[CSS has a value for the display attribute called run-in. It&#8217;s like this: h3 { display: run-in; } The point is to allow a header to run into text below it, without sacrificing semantics or running into the problems you might run into trying to force it with other layout techniques. Let&#8217;s take a closer [...]]]></description> <content:encoded><![CDATA[<p>CSS has a value for the display attribute called <tt>run-in</tt>. It&#8217;s like this:</p><pre><code class="css">h3 {
  display: run-in;
}</code></pre><p>The point is to allow a header to run into text below it, without sacrificing semantics or running into the problems you might run into trying to force it with other layout techniques.</p><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/runinbrowser.png" alt="" title="runinbrowser" width="570" height="262" class="alignnone size-full wp-image-6926" /></p><p>Let&#8217;s take a closer look.</p><p><span id="more-596"></span></p><h3>But why not __________?</h3><p><strong>But why not float it to the left?</strong> Well headers are often of larger font-size than body type. So if you float the header to the left, you might catch more than one line.</p><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/runinfloatproblem.png" alt="" title="runinfloatproblem" width="570" height="262" class="alignnone size-full wp-image-6928" /></p><p><strong>But why not make it an inline element?</strong> Because the following text might be (actually, is likely to be) inside of a paragraph tag. Paragraph tags are block-level, and thus the will break to a new line if they follow an inline element and the effect will not be achieved. You could insert the &lt;h3> tag <em>within</em> the &lt;p> tag, but that has semantic concerns, and more importantly, long term maintenance concerns. What if this effect goes out of vogue?</p><p><strong>But why not use inline-block?</strong> Same problem as above. The effect will not be achieved unless you tuck the header into the following paragraph which is problematic.</p><h3>How does it work then?</h3><p>If a run-in element precedes a block level element, the run in element will behave structurally as if it has become the block level elements first inline child element.</p><h3>Browser Support</h3><p>Haven&#8217;t heard much about this? Well it might be because browser support is a bit weird.</p><p>Rumor has it that Mozilla <a href="http://twitter.com/Zirro/status/18875860411">isn&#8217;t happy</a> with <a href="http://www.w3.org/TR/css3-box/#run-in-boxes">the spec</a>. Firefox doesn&#8217;t support it at all, including the version 4 betas.</p><p>The WebKit family (Safari and Chrome) are supporting it, as well as Opera and IE 8. There are some differences in how these browsers handle things though. <a href="http://www.quirksmode.org/css/display.html">Reports have it</a> that older versions of WebKit and Konqueror allowed run-in elements to run into succeeding inline elements which is incorrect.</p><h3>Issues in the spec?</h3><p>In my own reading of the spec, I find it a bit unclear.</p><blockquote><p>If a sibling block box (that does not float and is not absolutely positioned) follows the run-in box, the run-in box becomes the first inline box of the block box.</p></blockquote><p>That makes sense and <em>appears</em> to be how it works, but does <em>&#8220;becomes the first inline box&#8221;</em> mean that the run-in box should become a descendant of the block box? In WebKit, the run-in element <a href="http://cl.ly/1mlP">retains its solidarity</a>.</p><blockquote><p>A run-in cannot run in to a block that already starts with a run-in or that itself is a run-in.</p></blockquote><p>Does that mean that there can&#8217;t be two headers, both run-ins, that run into a paragraph below? That&#8217;s how I would read it, but I think the WebKit implementation where they <a href="http://cl.ly/1n0E">both fall inside</a> makes more sense. Opera and IE 8 follow the spec in that the first run-in becomes block and the second goes inline.</p><p>Then it says:</p><blockquote><p>Otherwise, the run-in box becomes a block box.</p></blockquote><p><em>Otherwise</em> is a big word, but implementations have been pretty good here. Three run-in&#8217;s in a row inside a parent with no other siblings? They all go block. A run-in sandwiched between two inline elements? It goes block. Run-in > absolute-position > block, the run-in goes block. Mind-bending, I know, but current modern browsers are doing good here.</p><p>If the run-in element contains anything block-level, it becomes block-level. All browsers seem to agree on that one.</p><h3>Demos</h3><p>Here is my own <a href="http://css-tricks.com/examples/Runin/">simple demo page</a>. There is also a <a href="http://www.hixie.ch/tests/evil/mixed/display-runin.html">super hardcore demo</a> (which is over 10 years old).</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/run-in/feed/</wfw:commentRss> <slash:comments>27</slash:comments> </item> <item><title>Interviewed on Unmatched Style Podcast</title><link>http://css-tricks.com/ums-podcast/</link> <comments>http://css-tricks.com/ums-podcast/#comments</comments> <pubDate>Wed, 28 Jul 2010 12:52:06 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6930</guid> <description><![CDATA[The crew from Unmatched Style are the folks that run ConvergeSE which I was lucky enough to attend this year. They are really great folks! While I was down there, I was interviewed by Gene for their podcast. Thanks to Gene for having me! I really recommend to everyone to check out Unmatched Style. A [...]]]></description> <content:encoded><![CDATA[<p><a href="http://www.unmatchedstyle.com/meet/">The crew</a> from <a href="http://www.unmatchedstyle.com/">Unmatched Style</a> are the folks that run <a href="http://convergese.com/">ConvergeSE</a> which I was lucky enough to attend this year. They are really great folks! While I was down there, I was interviewed by Gene for their podcast.</p><p><span id="more-6930"></span></p><p><object width="570" height="345"><param name="movie" value="http://www.youtube.com/v/FLqhKdCjH_E&amp;hl=en_US&amp;fs=1?color1=0x3a3a3a&amp;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FLqhKdCjH_E&amp;hl=en_US&amp;fs=1?color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="570" height="345"></embed></object></p><p>Thanks to Gene for having me! I really recommend to everyone to check out <a href="http://www.unmatchedstyle.com/">Unmatched Style</a>. A web design gallery is also part of what they do. I always tell people it&#8217;s my favorite web design gallery because they don&#8217;t just post a screenshot and call it a wrap, they write about why they like the design, and even parts they don&#8217;t like. Not to mention these are folks who build websites for a living, so there is nobody more qualified to critique and promote others work.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/ums-podcast/feed/</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>Dude, you browse with JavaScript on?</title><link>http://css-tricks.com/browse-with-javascript-convo/</link> <comments>http://css-tricks.com/browse-with-javascript-convo/#comments</comments> <pubDate>Mon, 26 Jul 2010 13:24:38 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6910</guid> <description><![CDATA[Dude, you browse with JavaScript on? Uhm, yeah, why wouldn&#8217;t I? It&#8217;s totally insecure. Hackers could destroy your computer. Hackers? What is this 1995? And, no they can&#8217;t. They can definitely steal information about you without you knowing. Like what? Like you&#8217;re address book information or your browsing history, depending on your browser and settings. [...]]]></description> <content:encoded><![CDATA[<p>Dude, you browse with JavaScript on?</p><p>Uhm, yeah, why wouldn&#8217;t I?</p><p>It&#8217;s totally insecure. Hackers could destroy your computer.</p><p>Hackers? What is this 1995? And, no they can&#8217;t.</p><p>They can definitely <a href="http://jeremiahgrossman.blogspot.com/2010/07/i-know-who-your-name-where-you-work-and.html">steal information</a> about you without you knowing.</p><p>Like what?</p><p>Like you&#8217;re address book information or your browsing history, depending on your browser and settings.</p><p><span id="more-6910"></span></p><p>So if I were to visit some dark corner of the internet where people ran malicious scripts like this, people might be able to capture that my name is Bob and I live at 123 Maple Drive Mayberry, NC? And that sometimes I look at boobs at The Daily Niner?</p><p>Yes.</p><p>But I don&#8217;t use autofill on my forms at the browser level, they can&#8217;t. What about you? Isn&#8217;t like every single website you visit seemingly broken?</p><p>Well good websites are coded to work fine without JavaScript, and I can selectively enable sites I trust to allow it.</p><p>That sounds like a lot of work to maintain a whitelist manually. And it&#8217;s not like you do a security audit of each site before whitelisting it right? You just decide to trust it, basically because you want to look at and use that website right now and JavaScript is the only way.</p><p>Yes but I&#8217;m much more likely to enable it on a big businesses website than some random blog. Look, I&#8217;m not alone here, millions of people have downloaded the <a href="https://addons.mozilla.org/en-US/firefox/addon/722/">NoScript plugin for Firefox</a> alone.</p><p>I see that. Here&#8217;s some empirical evidence for you though. I&#8217;ve never once blocked JavaScript on any of the browsers I&#8217;ve used. I browse around all day with little regard to my trust level of the current website. In general my trust level is actually fairly low. I know a lot of sites I visit are hosted on shared hosting by folks like me who aren&#8217;t security gurus. I&#8217;ve had my websites hacked before on the server-level (nothing to do with JavaScript), which then inserted malicious JavaScript into my pages. I&#8217;m sure this has happened to many of those other sites I visit. Sometimes that JavaScript stores weird cookie data or redirects the website. Totally sucky and undesirable, but nothing that serious has ever happened to the point where I even consider just turning off JavaScript. I&#8217;ve never lost sensitive data or gotten spyware or anything like that.</p><p>Are you sure? Have you ever had weird charges on a credit card you&#8217;ve had to refute?</p><p>Well yeah.</p><p>Do you know exactly how that information was stolen from you?</p><p>No I don&#8217;t, but I doubt it was JavaScript.</p><p>Doubt&#8230; Trust&#8230; two sides of the same coin.</p><p>Here&#8217;s another reason I browse with JavaScript on. I like JavaScript. I write JavaScript. It does cool stuff and I like to see how other people use it. So I&#8217;m biased in that regard. As a web designer and developer, I don&#8217;t like hearing how many people browse with JavaScript off. I want that to go away. I don&#8217;t want to create gracefully degrading websites because it&#8217;s often twice the work and only for accommodating people with outdated concerns about this technology. And don&#8217;t tell me all about accessibility, I hear that most screen readers handle JavaScript just fine.</p><p>A site that works well without JavaScript also means it also likely has good architecture. It works great alone, and JavaScript adds to the user experience as needed.  Relying on JavaScript entirely is just lazy.</p><p>You see it as lazy I see it as the future. So what about Flash, do you block that too?</p><p>No, I love Flash.</p><p>I knew I didn&#8217;t like you. You&#8217;re probably a PC guy too huh?</p><p>Dude, we&#8217;re not going there.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/browse-with-javascript-convo/feed/</wfw:commentRss> <slash:comments>179</slash:comments> </item> <item><title>New Screencast: Simple TextMate Tips</title><link>http://css-tricks.com/new-screencast/</link> <comments>http://css-tricks.com/new-screencast/#comments</comments> <pubDate>Thu, 22 Jul 2010 07:10:55 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Screencast]]></category><guid isPermaLink="false">http://css-tricks.com/?p=5380</guid> <description><![CDATA[TextMate is a mac-only code editor. Sorry to all the PC users this time around. If you’ve been watching these screencasts for a long time, you know I used to mostly use Coda. Since I’ve been working a lot more locally, I’ve been using much more TextMate, which I’ve always considered to be superior as [...]]]></description> <content:encoded><![CDATA[<blockquote><p>TextMate is a mac-only code editor. Sorry to all the PC users this time around. If you’ve been watching these screencasts for a long time, you know I used to mostly use Coda. Since I’ve been working a lot more locally, I’ve been using much more TextMate, which I’ve always considered to be superior as a code editor but just wasn’t as convenient as Coda being all-in-one. I’ll cover some things I find cool and useful in TextMate, like vertical text selection, mass indenting, commenting, code folding, find in project, using the minimal bundles, zen coding, and more. I’m sure there are some TextMate gurus out there, so please feel free to share your own tips.</p></blockquote><p><a href="http://css-tricks.com/video-screencasts/90-simple-textmate-tips/"><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/screencast-90-thumb.jpg" alt="" title="" /><br /> View Screencast</a></p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/new-screencast/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Understanding border-image</title><link>http://css-tricks.com/understanding-border-image/</link> <comments>http://css-tricks.com/understanding-border-image/#comments</comments> <pubDate>Wed, 21 Jul 2010 13:40:53 +0000</pubDate> <dc:creator>Guest Author</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6883</guid> <description><![CDATA[The new CSS3 property border-image is a little tricky, but it can allow you to create flexible boxes with custom borders (or drop shadows, if that&#8217;s your thing) with a single div and a single image. In this article I explain how the border-image shorthand property works in today&#8217;s browsers. The basic idea The border-image [...]]]></description> <content:encoded><![CDATA[<p>The new CSS3 property border-image is a little tricky, but it can allow you to create flexible boxes with custom borders (or drop shadows, if that&#8217;s your thing) with a single div and a single image. In this article I explain how the <tt>border-image</tt> shorthand property works in today&#8217;s browsers.</p><p><span id="more-6883"></span></p><h3>The basic idea</h3><p>The border-image shorthand property has 3 parts:</p><pre><code class="css">border-image: url(border-image.png) 25% repeat;</code></pre><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/borderimagecss.png" alt="" title="borderimagecss" width="570" height="200" class="alignnone size-full wp-image-6899" /></p><p>Essentially, these allow you to specify:</p><ol><li>An image to use as the border</li><li>Where to slice that image, dividing the image into 9 sections</li><li>How the browser should apply those sections to the edges of your element</li></ol><h3>The pertinent details</h3><p>Let&#8217;s look at each part of the process in a little more detail. The first part is easy, and is familiar from the <tt>background-image</tt> property. For demonstration purposes I&#8217;ll use this image, which is 100px x 100px:</p><div class="image-wrap"> <img src="http://www.norabrowndesign.com/css-experiments/images/border-image.png" width="100" height="100" alt="A border-image" /></div><h3>Slicing your image</h3><p>The second part can have from one to four values, much like the <tt>border-width</tt> property, and they are specified in the same order: top, right, bottom, left. You can use percentages or pixels. Strangely, the percentages require the &#8220;%&#8221;, while pixels should be listed <em>without the &#8220;px&#8221;</em>:</p><pre><code class="css">border-image: url(my-image.gif) 25% 30% 10% 20% repeat;
border-image: url(my-image.gif) 25 30 10 20 repeat;</code></pre><p>In this case, since my image is 100px x 100px, the two rules above are equivalent &#8211; they slice the image in the same places. I&#8217;ve added some dimensions on my image to demonstrate:</p><div class="image-wrap"> <img src="http://www.norabrowndesign.com/css-experiments/images/border-image-marked.png" width="100" height="100" alt="A border-image" /></div><h3>Repeat, Round, Stretch</h3><p><tt>border-image</tt> will always place the corner sections of your image into the corresponding corners of your element box, but the third part of the shorthand rule tells the browser how to treat the middle sections of your image &#8212; the ones that will go along the edges of your element. <tt>Repeat</tt> (repeat, or tile, the image) and <tt>stretch</tt> (stretch, or scale, the image) are pretty self-explanatory. <tt>Round</tt> means tile the image but only so that a whole number of tiles fit, and otherwise scale the image. Right now, Safari and Chrome interpret <tt>round</tt> as <tt>repeat</tt>. There can be up to two values: one for the top and bottom edges of the element, and one for the left and right. Here&#8217;s an example with the top/bottom value set to <tt>repeat</tt>, and the left/right value set to <tt>stretch</tt>:</p><pre><code class="css">#example-one {
	border-width:25px 30px 10px 20px;
	-moz-border-image:url("border-image.png") 25 30 10 20 repeat stretch;
	-webkit-border-image:url("border-image.png") 25 30 10 20 repeat stretch;
	border-image:url("border-image.png") 25 30 10 20 repeat stretch;
}</code></pre><div class="image-wrap"> <img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/exampleoneimage.png" alt="" title="exampleoneimage" width="510" height="272" class="alignnone size-full wp-image-6895" /><br /> Screenshot for Example One</div><div id="example-one"><p><strong>LIVE DEMO, RSS READERS CLICK OVER TO SEE.</strong> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu arcu non dui consequat vestibulum non vitae eros. Donec imperdiet lorem at mi rhoncus lacinia. Phasellus porttitor ligula eu justo condimentum eget placerat arcu pharetra. Proin fringilla vulputate eros in accumsan. Sed mi nibh, pulvinar eu sollicitudin ut, feugiat non ipsum. In ornare, quam sit amet tempor suscipit, erat odio suscipit nisi, eu gravida nisl orci ut arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p></div><h3>Border-width</h3><p><tt>border-image</tt> won&#8217;t do anything if you don&#8217;t specify a width for your border. For browsers that understand <tt>border-image</tt>, your image slices will be scaled to the specified width. If you use the <tt>border</tt> shorthand property, it provides a nice fallback for browsers that don&#8217;t:</p><pre><code class="css">#example-two {
	border:50px double orange;
	-moz-border-image:url("border-image.png") 25 30 10 20 repeat;
	-webkit-border-image:url("border-image.png") 25 30 10 20 repeat;
	border-image:url("border-image.png") 25 30 10 20 repeat;
}</code></pre><div class="image-wrap"> <img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/exampletwoimage.png" alt="" title="exampletwoimage" width="561" height="335" class="alignnone size-full wp-image-6894" /><br /> Screenshot of Example Two</div><div id="example-two" style="display: none;"><p><strong>LIVE DEMO, RSS READERS CLICK OVER TO SEE.</strong>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu arcu non dui consequat vestibulum non vitae eros. Donec imperdiet lorem at mi rhoncus lacinia. Phasellus porttitor ligula eu justo condimentum eget placerat arcu pharetra. Proin fringilla vulputate eros in accumsan. Sed mi nibh, pulvinar eu sollicitudin ut, feugiat non ipsum. In ornare, quam sit amet tempor suscipit, erat odio suscipit nisi, eu gravida nisl orci ut arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p></div><p>Or you can specify each width individually (in this example I&#8217;ve specified widths such that the image slices aren&#8217;t scaled at all):</p><pre><code class="css">#example-three {
	border-color:orange;
	border-style:double;
	border-width:25px 30px 10px 20px;
	-moz-border-image:url("border-image.png") 25 30 10 20 repeat;
	-webkit-border-image:url("border-image.png") 25 30 10 20 repeat;
	border-image:url("border-image.png") 25 30 10 20 repeat;
}</code></pre><div class="image-wrap"> <img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/example-three-image.png" alt="" title="example-three-image" width="563" height="275" class="alignnone size-full wp-image-6893" /><br /> Screenshot of Example Three</div><div id="example-three" style="display: none;"><p><strong>LIVE DEMO, RSS READERS CLICK OVER TO SEE.</strong> dolor sit amet, consectetur adipiscing elit. Aenean eu arcu non dui consequat vestibulum non vitae eros. Donec imperdiet lorem at mi rhoncus lacinia. Phasellus porttitor ligula eu justo condimentum eget placerat arcu pharetra. Proin fringilla vulputate eros in accumsan. Sed mi nibh, pulvinar eu sollicitudin ut, feugiat non ipsum. In ornare, quam sit amet tempor suscipit, erat odio suscipit nisi, eu gravida nisl orci ut arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p></div><p>Using a plain border at the same widths as your border-image won&#8217;t always be ideal, however, so you may want to use conditional stylesheets to give IE some different border styles altogether.</p><h3>Browser quirks</h3><p>Predictably, IE doesn&#8217;t understand anything of <tt>border-image</tt>. Browsers that <i>do</i> support border-image only support the shorthand property, not all the individual properties that are <a href="http://www.w3.org/TR/css3-background/#border-images">described in the spec</a>. Some potentially useful properties aren&#8217;t supported at all, especially <tt>border-image-outset</tt>, which would solve <a href="http://www.norabrowndesign.com/css-experiments/border-image-frame.html#one" title="Demonstration of border-image-outset issue">this problem.</a></p><p>Also, the default behavior is supposed to be to <i>discard</i> the center section of the image, and use the &#8216;fill&#8217; keyword on the <tt>border-image-slice</tt> property to preserve it:</p><blockquote><p>The ‘fill’ keyword, if present, causes the middle part of the border-image to be preserved. (By default it is discarded, i.e., treated as empty.) (<a href="http://www.w3.org/TR/css3-background/#border-image-slice">Read the spec</a>)</p></blockquote><p>But the current browser behavior is to preserve the middle, and there is no way to turn it off. Thus, if you don&#8217;t want your element&#8217;s content area to have a background, the center section of your image must be empty. However, you can use this filling behavior to your advantage, to create a <a href="http://www.norabrowndesign.com/css-experiments/border-image-frame.html#two" alt="Demonstration of CSS3 border-image fill behavior">box with a fancy border and background</a>, with only one image.</p><h3>Interactive demo</h3><p>I built a <a href="http://www.norabrowndesign.com/css-experiments/border-image-anim.html"><tt>border-image</tt> demo page</a> to help me get my head around this complicated new set of CSS3 properties. You can pick an image, specify repeat, round, or stretch, and adjust the border-width and slicing. Enjoy!</p><div class="image-wrap"> <a href="http://www.norabrowndesign.com/css-experiments/border-image-anim.html"><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/interactiveborderradiustool.jpg" alt="" title="interactiveborderradiustool" width="553" height="478" class="alignnone size-full wp-image-6898" /></a></div><h3>Examples in the wild</h3><ul><li><a href="http://www.blog.spoongraphics.co.uk/latest_news/whats-new-at-blogspoongraphics">Chris Spooner</a> uses it to nice effect to give his images a custom border.</li><li>On <a href="http://www.gopinkboots.com">the travel blog Go Pink Boots</a> I built recently, I used it to add a torn-paper background to images.</li><li>I use it on my site <a href="http://www.webdesignersreviewofbooks.com/reviews/html5-for-web-designers">The Web Designers&#8217; Review of Books</a> to highlight blockquotes.</li></ul><p>If you have other examples on live sites, I&#8217;d love to see them. Leave a link in the comments!</p><h3>About the Author</h3><p><a href="http://www.norabrowndesign.com">Nora Brown</a> is a freelance web and graphic designer based in Boston. Her pet project at the moment is the <a href="http://www.webdesignersreviewofbooks.com">Web Designers&#8217; Review of Books</a>, where she reviews books on everything from Blue Note album covers to HTML5. Have a look!</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/understanding-border-image/feed/</wfw:commentRss> <slash:comments>29</slash:comments> </item> <item><title>Local Previews of Images from File Inputs (fail)</title><link>http://css-tricks.com/local-previews-of-images/</link> <comments>http://css-tricks.com/local-previews-of-images/#comments</comments> <pubDate>Mon, 19 Jul 2010 13:12:43 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6788</guid> <description><![CDATA[A little while back there was a guest post about Ajax image previews. It&#8217;s a nice technique but it left myself and a few other commenters thinking: wouldn&#8217;t it be cool if you didn&#8217;t have to upload the image at all to preview it? After all, the image is on the persons computer already why [...]]]></description> <content:encoded><![CDATA[<p>A little while back there was a guest post about <a href=" http://css-tricks.com/ajax-image-uploading/">Ajax image previews</a>. It&#8217;s a nice technique but it left myself and a few other commenters thinking: wouldn&#8217;t it be cool if you didn&#8217;t have to upload the image at all to preview it? After all, the image is on the persons computer already why can&#8217;t we just snag the local file path and use that as the <tt>src</tt> of an image.</p><div class="image-wrap"> <img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/inputwithpreview.png" alt="" title="inputwithpreview" width="237" height="274" class="alignnone size-full wp-image-6874" /></div><p>Well, it&#8217;s that snagging of the file path that is the problem. I did some research and testing in different browsers and I thought I&#8217;d document the results.</p><p><span id="more-6788"></span></p><h3>Genesis</h3><p>The idea comes from the fact that you can see see the file path in the file input after you select it.</p><div class="image-wrap"> <img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/filepathininput.png" alt="" title="filepathininput" width="226" height="43" class="alignnone size-full wp-image-6864" /><br /> Your eyeballs can see it, but JavaScript cannot.</div><h3>Security issue</h3><p>In all my naivety, I just though <em>&#8220;Hey we&#8217;ll just get the value of the input and use that as the <tt>src</tt> of an image element next to the input!&#8221;</em> As I quickly learned, there are some security concerns with allowing the browser to see a local file path like that. A malicious script could learn a good deal about your local file system if a file input was willing to cough up data like that.</p><h3>What browsers actually do</h3><h4>Internet Explorer &#038; Opera</h4><p>Both these browsers will return a value like this when trying to access the value of the file input:</p><pre><code class="html">C:\fakepath\image.png</code></pre><p><a href="http://acidmartin.wordpress.com/2009/06/09/the-mystery-of-cfakepath-unveiled/">This article</a> has a bit more information on the subject. Apparently if you add the site in question to the &#8220;Trusted sites&#8221; list in Internet Explorer it will return the file path. But of course you can&#8217;t expect users to do that.</p><h4>WebKit (Safari / Chrome)</h4><p>Return no value whatsoever for the file input value.</p><h4>Firefox</h4><p>Firefox is unique in that it returns only the filename for the file inputs value. While clearly that won&#8217;t work to get a local image preview working, <a href="http://stackoverflow.com/questions/81180/how-to-get-the-file-path-from-html-input-form-in-firefox-3">this thread on StackOverflow</a> lead to an interesting solution.</p><p>While it won&#8217;t give you the file path, Firefox will let you use a function called &#8216;getAsDataURL()&#8217; on the files attribute of the DOM on that input.</p><pre><code class="javascript">// Browser supports `files` as part of DOM
if (this.files) {

   //  This works in Firefox, #image-preview is an &lt;img src="" /&gt;
   $("#image-preview").attr("src", this.files[0].getAsDataURL());

}</code></pre><p><a href="http://css-tricks.com/examples/FileUploadLocal/" class="button">View Demo</a> (only Firefox does anything)</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/local-previews-of-images/feed/</wfw:commentRss> <slash:comments>22</slash:comments> </item> <item><title>Textarea Tricks</title><link>http://css-tricks.com/textarea-tricks/</link> <comments>http://css-tricks.com/textarea-tricks/#comments</comments> <pubDate>Fri, 16 Jul 2010 13:03:41 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6841</guid> <description><![CDATA[Oh, &#60;textarea&#62;&#8217;s. How many quirks you posses. Here is a collection of nine things you might want to do related to textareas. Enjoy. 1. Image as textarea background, disappears when text is entered. You can add a background-image to a textarea like you can any other element. In this case, the image is a friendly [...]]]></description> <content:encoded><![CDATA[<p>Oh, &lt;textarea&gt;&#8217;s. How many quirks you posses. Here is a collection of nine things you might want to do related to textareas. Enjoy.</p><p><span id="more-6841"></span></p><h3>1. Image as textarea background, disappears when text is entered.</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/imagebehind.png" alt="" title="imagebehind" width="570" height="207" class="alignnone size-full wp-image-6842" /></p><p>You can add a background-image to a textarea like you can any other element. In this case, the image is a friendly reminder to be nice =). If you add a background image, for whatever reason, it can break the browser default styling of the textarea. The default 1px solid bolder is replaced with a thicker beveled border. To restore the browser default, you can just force the border back to normal.</p><pre><code class="css">textarea {
  background: url(images/benice.png) center center no-repeat; /* This ruins default border */
  border: 1px solid #888;
}</code></pre><p>That background image might interfere with the readability of the text once the text reaches that far. Here is some jQuery that will remove the background when the textarea is in focus, and put it back if the textarea is left without any text inside.</p><pre><code class="javascript">$('textarea')
  .focus(function() { $(this).css("background", "none") })
  .blur(function() { if ($(this)[0].value == '') { $(this).css("background", "url(images/benice.png) center center no-repeat") } });</code></pre><h3>2. HTML5 placeholder text</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/html5placeholder.png" alt="" title="html5placeholder" width="443" height="108" class="alignnone size-full wp-image-6843" /></p><p>There is a new attribute as part of HTML5 forms called <tt>placeholder</tt>. It shows faded gray text in the textarea (also works for text-style inputs) which disappears when the textarea is in focus or has any value.</p><pre><code class="html">&lt;textarea placeholder="Remember, be nice!" cols="30" rows="5"&gt;&lt;/textarea&gt;</code></pre><p>HTML5 placeholder text works in Safari 5, Mobile Safari, Chrome 6, and the Firefox 4 alpha.</p><h3>3. Placeholder text, HTML5 with jQuery fallback</h3><p>We can easily test if a particular element supports a particular attribute by testing with JavaScript:</p><pre><code class="javascript">function elementSupportsAttribute(element, attribute) {
  var test = document.createElement(element);
  if (attribute in test) {
    return true;
  } else {
    return false;
  }
};</code></pre><p>Then we can write code so that if the browser does support the placeholder attribute, we&#8217;ll use that, if not, we&#8217;ll mimic the behavior with jQuery:</p><pre><code class="javascript">if (!elementSupportsAttribute('textarea', 'placeholder')) {
  // Fallback for browsers that don't support HTML5 placeholder attribute
  $("#example-three")
    .data("originalText", $("#example-three").text())
    .css("color", "#999")
    .focus(function() {
        var $el = $(this);
        if (this.value == $el.data("originalText")) {
          this.value = "";
        }
    })
    .blur(function() {
      if (this.value == "") {
          this.value = $(this).data("originalText");
      }
    });
} else {
  // Browser does support HTML5 placeholder attribute, so use it.
  $("#example-three")
    .attr("placeholder", $("#example-three").text())
    .text("");
}</code></pre><h3>4. Remove the blue glow</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/blueglow.png" alt="" title="blueglow" width="570" height="130" class="alignnone size-full wp-image-6844" /></p><p>All WebKit browsers, Firefox 3.6, and Opera 10 all put a glowing blue border around textareas when they are in focus. You can remove it from the WebKit browsers like this:</p><pre><code class="css">textarea {
  outline: none;
}</code></pre><p>You could apply it to the :focus style as well, but it works either way. I have not yet found a way to remove it from either Firefox or Opera, but <tt>-moz-outline-style</tt> was about as far as I tested.</p><p><strong>REMINDER:</strong> The blue glow is becoming a strong standard and breaking that standard is typically a bad thing for your users. If you do it, you should have a darn compelling reason to as well as a similarly strong :focus style.</p><h3>5. Remove resize handle</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/noresizer.png" alt="" title="noresizer" width="570" height="129" class="alignnone size-full wp-image-6845" /></p><p>WebKit browsers attached a little UI element to the bottom right of text areas that users can use to click-and-drag to resize a textarea. If for whatever reason you want to remove that, CSS is all it takes:</p><pre><code class="css">textarea {
  resize: none;
}</code></pre><h3>6. Add resize handle</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/jqueryuiresizer.png" alt="" title="jqueryuiresizer" width="424" height="142" class="alignnone size-full wp-image-6846" /></p><p>jQuery UI has a <a href="http://jqueryui.com/demos/resizable/">resizeable interaction</a> that can be used on textareas. It works in all browsers and overrides the WebKit native version, because this version has all kinds of fancy stuff (like callbacks and animation).</p><p>To use it, load jQuery and jQuery UI on your page and at its most basic level you call it like this:</p><pre><code class="javascript">$("textarea").resizable();</code></pre><h3>7. Auto-resize to fit content</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/autoresizetextarea.png" alt="" title="autoresizetextarea" width="570" height="352" class="alignnone size-full wp-image-6847" /></p><p>James Padolsey has a super nice jQuery script for <a href="http://james.padolsey.com/javascript/jquery-plugin-autoresize/">auto resizing textareas</a>. It works just how you likely hope it does. The textarea starts out a normal reasonable size. As you type more and more content, the textarea expands to include all of that text, rather than triggering a scrollbar as is the default.</p><p>The plugin has a variety of options, but at its simplest you just load jQuery, the plugin file, and call it like this:</p><pre><code class="javascript">$('textarea').autoResize();</code></pre><h3>8. Nowrap</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/textnotwrapping.png" alt="" title="textnotwrapping" width="458" height="129" class="alignnone size-full wp-image-6848" /></p><p>To prevent text from wrapping normally in CSS, you use <tt>#whatever { white-space: nowrap; }</tt>. But for whatever reason, that doesn&#8217;t work with textareas. If you want to be able to type into textareas and would rather lines do not break until you press return/enter (a horizontal scrollbar is triggered instead), you&#8217;ll have to use the <tt>wrap="off"</tt> attribute.</p><pre><code class="html">&lt;textarea wrap="off" cols="30" rows="5"&gt;&lt;/textarea&gt;</code></pre><h3>9. Remove default scrollbars in Internet Explorer</h3><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/noscrollbarstextarea.png" alt="" title="noscrollbarstextarea" width="491" height="158" class="alignnone size-full wp-image-6849" /></p><p>IE puts a vertical scrollbar by default on all textareas. You can hid it with <tt>overflow: hidden</tt>, but then you don&#8217;t get any scrollbars at all when you expand. Thankfully auto overflow works to remove the scrollbar but still put them back when needed.</p><pre><code class="css">textarea {
  overflow: auto;
}</code></pre><p>&nbsp;</p><p>All the above examples <a href="http://css-tricks.com/examples/TextareaTricks/">can be seen here</a>.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/textarea-tricks/feed/</wfw:commentRss> <slash:comments>78</slash:comments> </item> <item><title>Tips for Web Design that Crosses Cultures</title><link>http://css-tricks.com/cross-culture-design/</link> <comments>http://css-tricks.com/cross-culture-design/#comments</comments> <pubDate>Wed, 14 Jul 2010 13:25:36 +0000</pubDate> <dc:creator>Guest Author</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6824</guid> <description><![CDATA[The internet has the potential to put a global audience at your fingertips, but there&#8217;s far more to reaching across cultural divides than simply putting your website out there and waiting for people to visit it. There are issues to do with language, design and SEO that all need to be addressed before your website [...]]]></description> <content:encoded><![CDATA[<p>The internet has the potential to put a global audience at your fingertips, but there&#8217;s far more to reaching across cultural divides than simply putting your website out there and waiting for people to visit it. There are issues to do with language, design and SEO that all need to be addressed before your website becomes truly accessible ‘world-wide’. Thankfully, though, there are a number of simple tricks you can apply that will make it all a less daunting process.</p><p><span id="more-6824"></span></p><h3>Translate your content</h3><p>This is perhaps the most obvious but also the most important tip. English is arguably the most commonly used language internationally, but it still serves as a native tongue for only about 20% of the world&#8217;s population. Clearly, an English-only website will be inaccessible to a huge percentage of your potential online audience of 1.8 billion people.</p><p>There are various ways to translate your content and the method you choose may reflect budget and time constraints. The easiest way is to add a translation widget such as <a href="http://translate.google.com/">Google Translate</a> or <a href="http://babelfish.yahoo.com/">Babelfish</a> to your site, allowing visitors to translate text to the language of their choice. Remember that any text embedded in Flash files won’t be translated – which is (yet another) a good argument against using too much Flash.</p><p>If you&#8217;re confident in using inline functions, you can build inline translation code into the site using Ajax, in connection with geolocation, to facilitate a smooth immersive translation process that directs the visitor to the correct language version, as determined by where their ISP is hosted.</p><p>If you do use machine translation, try to make your original content as simple and direct as possible and avoid specific cultural references, as these will invariably not translate well.</p><p>If budget allows, having your copy professionally translated is the optimum choice. Using a native speaker from the target market will ensure that meaning and nuances will carry over to your translated site and any linguistic or cultural mistakes can be avoided.</p><h3>Use horizontal navigation bars</h3><p>Not all languages read from left to right like English. Scripts such as Arabic and Hebrew read from right to left. While CSS makes it easy to flip a vertical navigation bar (which would normally be located on the left-hand side for a left-to-right language) and script direction from one side to the other, using a horizontal bar located across the top of the page will add a sense of continuity and cohesive design to localized versions of your site.</p><h3>Use Unicode UTF-8</h3><p>Unicode UTF-8 is the ideal character encoding tool. Compatible with over 90 different written languages or scripts, it&#8217;s also supported by all the major browsers. Even if you see no need for a localized site in Arabic or Simplified Chinese right now, using UTF-8 will give you the flexibility to create one in the future and it also incorporates all the additional characters from extended Latin alphabets (such as the German Ä, Ö, Ü and ß).</p><p>Bear in mind that some scripts and languages will take up more space than others to convey the same information and this may affect your page design.</p><h3>Use appropriate colours</h3><p>The use of colours can enhance a site&#8217;s visual appeal and help convey a theme or emotion, but some colours have different connotations in different cultures. White, for example, can signify marriage in the west but is associated with death and mourning in much of the east.</p><h3>Tailor your design to the market</h3><p>Some cultures (such as Japan and China) can be defined as &#8216;high context&#8217; cultures. These cultures have a tendency to draw information from context and situation. &#8216;Low context&#8217; cultures (including Germany, Scandinavia and North America) tend to look for explicitly worded and expressed information. In terms of website design, this means that sites with a more visual and immersive feel may be better received in high context cultures and sites with concise, clear layouts and text will appeal more to low context cultures. As an example, take a look at Nokia&#8217;s clearly structured and information-heavy <a href="http://www.nokia.de/">German site</a>, with prices and products listed on the front page, and compare it to the more visually oriented <a href="http://www.nokia.com.cn/">Chinese version</a>.</p><h4>Nokia&#8217;s Chinese site</h4><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/Nokia_China.jpg" alt="" title="Nokia_China" width="570" height="573" class="alignnone size-full wp-image-6832" /></p><h4>Nokia&#8217;s German site</h4><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/Nokia_Germany.jpg" alt="" title="Nokia_Germany" width="570" height="493" class="alignnone size-full wp-image-6833" /></p><h3>Localize your SEO</h3><p>There&#8217;s little point having a beautifully designed series of websites which are accessible to a range of different cultures if nobody can find them. SEO keywords can vary tremendously from location to location so don&#8217;t just translate your keywords directly. A little research may reveal that colloquialisms, alternative terms or even misspellings are more commonly used in your new target market. Research keywords not only on the local versions of search giants like Google but also on any major local competitors such as <a href="http://www.baidu.com/">Baidu</a> (the leading search engine in China).</p><div class="explanation"><h3>About the author</h3><p>Christian Arno is the founder and Managing Director of global translations company <a href="http://www.lingo24.com/">Lingo24</a>. Launched in 2001, Lingo24 employs some 4,000 professional freelance translators covering a hundred different language combinations. Follow Christian on Twitter: <a href="http://twitter.com/lingo24">@Lingo24</a>.</div><h3>Note from the editor</h3><p>Christian has written for a number of other blogs on this same subject, so if are very interested in this, check out his other articles:</p><ul><li><a href="http://www.instantshift.com/2010/06/22/design-for-the-world-cross-cultural-web-design/">Design for the World: Cross Cultural Web Design</a></li><li><a href="http://speckyboy.com/2010/06/30/tips-and-thoughts-on-cross-cultural-global-web-design/">Tips and Thoughts on Cross-Cultural Global Web Design</a></li><li><a href="http://www.onextrapixel.com/2010/06/22/building-a-cross-cultural-web-design-for-a-wider-audience/">Building A Cross-Cultural Web Design For A Wider Audience</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/cross-culture-design/feed/</wfw:commentRss> <slash:comments>22</slash:comments> </item> <item><title>Google Maps Slider</title><link>http://css-tricks.com/google-maps-slider/</link> <comments>http://css-tricks.com/google-maps-slider/#comments</comments> <pubDate>Mon, 12 Jul 2010 21:30:54 +0000</pubDate> <dc:creator>Chris Coyier</dc:creator> <category><![CDATA[Article]]></category><guid isPermaLink="false">http://css-tricks.com/?p=6815</guid> <description><![CDATA[Google Maps has a JavaScript API now in it&#8217;s third version. I remember playing with some version of the API back in v2 and thought it was kinda cool but a bit obtuse. For one thing, v3 no longer requires applying for an API key which is nice. I&#8217;m sure it&#8217;s partly me getting better [...]]]></description> <content:encoded><![CDATA[<p><a href="http://www.google.com/maps">Google Maps</a> has a <a href="http://code.google.com/apis/maps/documentation/javascript/">JavaScript API</a> now in it&#8217;s third version. I remember playing with some version of the API back in v2 and thought it was kinda cool but a bit obtuse. For one thing, v3 no longer requires applying for an API key which is nice.</p><p>I&#8217;m sure it&#8217;s partly me getting better at JavaScript, but I found the API quite well done and easy to work with. For one thing, it&#8217;s fully evented. That means you can attach event listeners to different thing, like the map itself or things inside the map. A simple example would be if a marker is clicked, you can change the zoom level of the map, change information shown elsewhere on the page, or really anything else you might want to do with JavaScript.</p><p>Not only is it evented for dealing with things inside the map, but the objects you used to create the map and stuff inside it are full of methods for controlling them. This makes it easy to control the map with events that happen elsewhere on your page.</p><p>I decided to play with it a little and try to build something.</p><p><img src="http://cdn.css-tricks.com/wp-content/uploads/2010/07/mapsslider.jpg" alt="" title="mapsslider" width="570" height="237" class="alignnone size-full wp-image-6816" /></p><p><a href="http://css-tricks.com/examples/GoogleMapSlider/" class="button">View Demo</a> <a href="http://css-tricks.com/examples/GoogleMapSlider.zip" class="button">Download Files</a></p><p><span id="more-6815"></span></p><p>I used jQuery to help out, but that&#8217;s definitely not required.</p><p>I created a list of locations in an unordered list. Each list item had HTML5 data attributes containing the latitude and longitude of it. It also contained a title and long and short descriptions.</p><pre><code class="html">&lt;li data-geo-lat="41.9786" data-geo-long="-87.9047"&gt;
  &lt;h3&gt;O'Hare Airport&lt;/h3&gt;
  &lt;p&gt;Flights n' stuff&lt;/p&gt;
  &lt;p class="longdesc"&gt;&lt;strong&gt;About:&lt;/strong&gt; O'Hare International Airport has been voted the "Best Airport in North America" for 10 years by two separate sources: Readers of the U.S. Edition of Business Traveler Magazine (1998-2003) and Global Traveler Magazine (2004-2007). Travel and Leisure magazine's 2009 "America's Favorite Cities" ranked Chicago's Airport System (O'Hare and Midway) the second-worst for delays, New York City's airport system (JFK, Newark Liberty, and LaGuardia) being the first.&lt;/p&gt;
&lt;/li&gt;</code></pre><p>When one of these list items is hovered over, I apply a &#8220;hover&#8221; class to deal with styling, &#8220;pan&#8221; the map to the new coordinates, and fill out the right area with more information.</p><p>It&#8217;s all fairly straight forward and further commented to clarify. Adding/editing points is as simple as <a href="http://geocoder.us/">changing coordinates</a> and text right in the HTML part.</p><h4>Idea</h4><p>The idea came from <a href="http://hitotoki.org/places/japan/tokyo/">this website</a> which I found in a <a href="http://twitter.com/ilovetypography/status/17160669126">tweet by ilovetypography</a>.</p> ]]></content:encoded> <wfw:commentRss>http://css-tricks.com/google-maps-slider/feed/</wfw:commentRss> <slash:comments>46</slash:comments> </item> </channel> </rss><!-- This site's performance optimized by W3 Total Cache. Dramatically improve the speed and reliability of your blog!

Learn more about our WordPress Plugins: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 2/27 queries in 0.081 seconds using apc
Content Delivery Network via cdn.css-tricks.com

Served from: css-tricks.com @ 2010-07-30 20:16:21 -->
