<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:idx="urn:atom-extension:indexing" xmlns:gr="http://www.google.com/schemas/reader/atom/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" idx:index="no"><!--
Content-type: Preventing XSRF in IE.

--><generator uri="http://www.google.com/reader">Google Reader</generator><id>tag:google.com,2005:reader/user/17526587290271802812/label/css</id><link rel="hub" href="http://pubsubhubbub.appspot.com/" /><title>"css" via neolao in Google Reader</title><gr:continuation>CMqDw7rV4p0C</gr:continuation><author><name>neolao</name></author><updated>2009-12-22T21:24:20Z</updated><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/neolao-reader-css" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry gr:crawl-timestamp-msec="1261517060547"><id gr:original-id="http://www.css3.info/?p=796">tag:google.com,2005:reader/item/a500f779c426e321</id><category term="Browsers" /><category term="News" /><title type="html">Opera adds support for CSS3 Transitions and 2D Transforms</title><published>2009-12-22T19:33:06Z</published><updated>2009-12-22T19:33:06Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/vJ2M44SFQS4/" type="text/html" /><author><name>Chris</name></author><gr:likingUser>05934036580372663612</gr:likingUser><gr:likingUser>14498237903244847975</gr:likingUser><gr:likingUser>03019982977675076972</gr:likingUser><gr:likingUser>15788030404716243023</gr:likingUser><gr:likingUser>00175335832574295455</gr:likingUser><gr:likingUser>08940561362860985987</gr:likingUser><gr:likingUser>05221790502551658316</gr:likingUser><source gr:stream-id="feed/http://feeds2.feedburner.com/css3"><id>tag:google.com,2005:reader/feed/http://feeds2.feedburner.com/css3</id><title type="html">CSS3 . Info</title><link rel="alternate" href="http://www.css3.info" type="text/html" /></source><content type="html">Opera has today issued a pre-alpha release of Opera 10.5 offering increased support for CSS3 and HTML5 as well as vastly increased JavaScript performance and improvements to the browser’s user interface.

Based on Opera’s Presto 2.5 rendering engine, Opera 10.5 adds CSS3 Transitions and 2D Transforms to the long list of CSS3 properties already supported by [...]&lt;img src="http://feeds.feedburner.com/~r/css3/~4/k3S3XvkwDNw" height="1" width="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Rl2LKUn0yK0zXf55StfAtr3JPeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rl2LKUn0yK0zXf55StfAtr3JPeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Rl2LKUn0yK0zXf55StfAtr3JPeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Rl2LKUn0yK0zXf55StfAtr3JPeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/vJ2M44SFQS4" height="1" width="1"/&gt;</content><feedburner:origLink>http://feedproxy.google.com/~r/css3/~3/k3S3XvkwDNw/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1261249268748"><id gr:original-id="http://www.smashingmagazine.com/?p=9987">tag:google.com,2005:reader/item/4d5d165434c88da5</id><category term="CSS" scheme="http://www.smashingmagazine.com" /><category term="animation" scheme="http://www.smashingmagazine.com" /><category term="behavioral" scheme="http://www.smashingmagazine.com" /><title type="html">What You Need To Know About Behavioral CSS</title><published>2009-12-19T11:57:18Z</published><updated>2009-12-19T19:12:06Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/B41y4ngYqgQ/" type="text/html" /><content xml:base="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/" xml:lang="en" type="html">&lt;table width="650"&gt;&lt;tr&gt;&lt;td width="650"&gt;&lt;div style="width:650px"&gt; &lt;img src="http://creatives.commindo-media.de/static/smashing-magazine-advertisement.gif" alt="Smashing-magazine-advertisement in What You Need To Know About Behavioral CSS" border="0"&gt;&lt;br&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=56"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=56" border="0" alt=" in What You Need To Know About Behavioral CSS"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=63"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=63" border="0" alt=" in What You Need To Know About Behavioral CSS"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=64"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=64" border="0" alt=" in What You Need To Know About Behavioral CSS"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;img src="http://imp.constantcontact.com/imp/cmp.jsp?impcc=IMP_DIMPBPRSMASHRSS&amp;amp;o=http://img.constantcontact.com/lp/images/standard/spacer.gif" alt="Spacer in What You Need To Know About Behavioral CSS" border="0" width="1" height="1"&gt;&lt;br&gt; As we move forward with the Web and browsers become capable of rendering more advanced code, we gradually get closer to the goal of universal standards across all platforms and computers. Not only will we have to spend less time making sure our box model looks right in IE6, but we create an atmosphere ripe for innovation and free of hacks and heavy front-end scripting.&lt;/p&gt;&lt;p&gt;The Web is an extremely adaptive environment and is surrounded by a collaborative community with a wealth of knowledge to share. If we collectively want to be able to have &lt;a href="http://ragamo.medioclick.com/jquery/corners/"&gt;rounded corners&lt;/a&gt;, we make it happen. If we want to have &lt;a href="http://www.protocoder.com/css/css-multiple-backgrounds-background-layering-with-jquery/"&gt;multiple background images&lt;/a&gt;, we make it happen. If we want &lt;a href="http://www.lrbabe.com/sdoms/borderImage/index.html"&gt; border images&lt;/a&gt;, we make that happen, too. So desire is not the issue. If it was, we would all still be using tables to lay out our pages and using heavy over-the-top code. We all know that anything can be done on the Web.&lt;/p&gt;&lt;h4&gt;Made for the Web&lt;/h4&gt;&lt;p&gt;CSS 3 properties like &lt;a href="http://www.css3.info/preview/rounded-border/"&gt;border-radius&lt;/a&gt;, &lt;a href="http://www.css3.info/preview/box-shadow/"&gt;box-shadow&lt;/a&gt;, and &lt;a href="http://www.css3.info/preview/text-shadow/"&gt;text-shadow&lt;/a&gt; are starting to gain momentum in WebKit (Safari, Chrome, etc.) and Gecko (Firefox) browsers. They are already creating more lightweight pages and richer experiences for users, not to mention that they degrade pretty gracefully; but they are only the tip of the iceberg of what we can do with CSS 3.&lt;/p&gt;&lt;p&gt;In this article, we will take those properties a step further and explore &lt;strong&gt;transformations, transitions, and animations&lt;/strong&gt;. We’ll go over the code itself, available support and some examples to show exactly how these new properties improve not only your designs but the overall user experience.&lt;/p&gt;&lt;h3&gt;CSS Transformations&lt;/h3&gt;&lt;p&gt;CSS transformations are a W3C oddity. It is the first time I have sat down to read the &lt;a href="http://www.w3.org/TR/css3-3d-transforms/"&gt;full specifications&lt;/a&gt; on something and didn’t feel like I had a handle on the subject afterward. The specs are written with the level of technical jargon you would expect from the W3C, but it focuses on the graphic (as in graph drawing) element of transformations and matrices. Having not dealt with a matrix since freshman-year Calculus, I had to do a lot of good old-fashioned browser testing and &lt;strong&gt;guessing and checking&lt;/strong&gt; for this section.&lt;/p&gt;&lt;p&gt;After going through every tutorial I could find and too many browser tests to count, I came out with some useful information on &lt;strong&gt;CSS transformations&lt;/strong&gt; that I think we can all benefit from.&lt;/p&gt;&lt;h4&gt;transform();&lt;/h4&gt;&lt;p&gt;The &lt;code&gt;transform&lt;/code&gt; property allows for the kind of functions also allowed by &lt;a href="http://www.w3.org/Graphics/SVG/"&gt;SVG&lt;/a&gt;. It can be applied to both &lt;strong&gt;inline and block-level elements&lt;/strong&gt;. It allows us to twist, zoom in on and move elements, all with one line of CSS.&lt;/p&gt;&lt;p&gt;One of the biggest complaints about cutting-edge design is that the text is not selectable. This is no longer a problem when you use the &lt;code&gt;transform&lt;/code&gt; property to manipulate text, because it is pure CSS and so any text within the element remains selectable. This is a huge advantage of CSS over using an image (or background image).&lt;/p&gt;&lt;p&gt;Some interesting and useful transform functions (that are supported):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;rotate&lt;/strong&gt;&lt;br&gt; Rotate allow you to turn an object by passing a degree value through the function.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;scale&lt;/strong&gt;&lt;br&gt; Scale is a zooming function and can make any element larger. It takes positive and negative values as well as decimals.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;translate&lt;/strong&gt;&lt;br&gt; Translate essentially repositions an element based on X and Y coordinates.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Let’s look at each of these in more detail.&lt;/p&gt;&lt;h4&gt;Rotate&lt;/h4&gt;&lt;p&gt;The transform property has many uses, one of which is to &lt;strong&gt;rotate&lt;/strong&gt;. Rotation turns an object based on a degree value and can be applied to both inline and block-level elements, It makes for a &lt;a href="http://www.csskarma.com/lab/css3/text_rotation.html"&gt;pretty cool effect&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/behavioral-css/transform_rotate.png" alt="Transform Rotate in What You Need To Know About Behavioral CSS"&gt;&lt;/p&gt;&lt;pre&gt;#nav {
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
    }&lt;/pre&gt;&lt;p&gt;Please notice that in IE 8 (when not in standards mode) it’s required that you type “-ms-filter” instead of just “filter” in your CSS.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;br&gt; Support for &lt;code&gt;transform: rotate&lt;/code&gt; is surprisingly widespread. In the CSS snippet above, we directly target &lt;code&gt;-webkit-&lt;/code&gt; and &lt;code&gt;-moz-&lt;/code&gt; and rotate the &lt;code&gt;#nav&lt;/code&gt; element by -90 degrees.&lt;/p&gt;&lt;p&gt;Pretty straightforward, right? The only problem is that the rotation is for a pretty important design element, and many designers will be reluctant to use it if Internet Explorer does not recognize it.&lt;/p&gt;&lt;p&gt;Luckily, &lt;strong&gt;IE has a filter for this&lt;/strong&gt;: the image transform filter. It can take four rotation values: 0, 1, 2, and 3. You won’t get the same fine-grained control that comes with Webkit and Gecko, but your design will remain consistent across older browsers (even IE6).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Is it okay to use?&lt;/strong&gt;&lt;br&gt; Yes, but make sure it is thoroughly tested.&lt;/p&gt;&lt;h4&gt;Scale&lt;/h4&gt;&lt;p&gt;Scaling does exactly what you think it would do: zoom in and out on an element. The scale function takes both width and height values, and those values can be positive, negative or decimals.&lt;/p&gt;&lt;p&gt;Positive values scale up the element, as you would expect, based on the width and height specified.&lt;/p&gt;&lt;p&gt;Negative values do not shrink the element, but rather reverse it (e.g. text is turned backwards) and then scaled accordingly. You can, however, use decimal values lower than 1 (e.g. .5) to shrink or zoom out of an element.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/behavioral-css/transform_scale.png" alt="Transform Scale in What You Need To Know About Behavioral CSS"&gt;&lt;/p&gt;&lt;pre&gt;#nav {
/* The nav element width and height will double in size */
-webkit-transform: scale(2);
-moz-transform: scale(2);
}

#nav {
/* The nav element width will double in size, but the height will remain unchanged*/
-webkit-transform: scale(2, 1);
-moz-transform: scale(2, 1);
}

#nav {
/* The nav element width will double in size and flip horizontally,
but the height will remain unchanged */
-webkit-transform: scale(-2, 1);
-moz-transform: scale(-2, 1);
}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;br&gt; The scale transformation is supported in&lt;strong&gt; Firefox, Safari and Chrome&lt;/strong&gt;, but not any version of Internet Explorer (yet) as far as I could tell. Scaling an object is a fairly significant design choice, but it can be applied with progressive enhancement using &lt;code&gt;:hover&lt;/code&gt;, which can add a little pop to your navigation especially.&lt;/p&gt;&lt;pre&gt;#nav li a:hover{
/* This should make your navigation links zoom slightly on hover */
-webkit-transform: scale(1.1);
-moz-transform: scale(1.1);
}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Is it okay to use?&lt;/strong&gt;&lt;br&gt; From time to time, yes. But not with critical design elements.&lt;/p&gt;&lt;h4&gt;Translate&lt;/h4&gt;&lt;p&gt;The name “translate” is a little misleading. It is actually a method of positioning elements using &lt;strong&gt; X and Y values&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;It looks much the same as the other kinds of transformation but adds an extra dimension to your website.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/behavioral-css/transform_translate.png" alt="Transform Translate in What You Need To Know About Behavioral CSS"&gt;&lt;/p&gt;&lt;pre&gt;#nav{
/* This will move the #nav element left 10 pixels and down 20 pixels. */
-moz-transform: translate(10px, 20px);
-webkit-transform: translate(10px, 20px);
}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;br&gt; Translate is currently supported in &lt;strong&gt;Firefox, Safari and Chrome&lt;/strong&gt; when you use the vender extensions &lt;code&gt;-moz-&lt;/code&gt; and &lt;code&gt;-webkit-&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Is it okay to use?&lt;/strong&gt;&lt;br&gt; Yes, but normal X/Y positioning is just as effective in many situations.&lt;/p&gt;&lt;h4&gt;Chaining Transformations&lt;/h4&gt;&lt;p&gt;Transformations are great individually, but if you want multiple transformations, the code can pile up pretty quickly, especially with the vendor extensions. Luckily, we have some built-in shortcuts:&lt;/p&gt;&lt;pre&gt;#nav{
-moz-transform: translate(10, 25);
-webkit-transform: translate(10, 25);
-moz-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
-moz-transform: scale(2, 1);
-webkit-transform: scale(2, 1);
}&lt;/pre&gt;&lt;p&gt;These &lt;strong&gt;transformations can be chained together&lt;/strong&gt; to make your CSS more efficient:&lt;/p&gt;&lt;pre&gt;#nav{
-moz-transform: translate(10, 25) rotate(90deg) scale(2, 1);
-webkit-transform: translate(10, 25) rotate(90deg) scale(2, 1);
}&lt;/pre&gt;&lt;p&gt;The real power of these properties is in combining and chaining them. You can move, turn, zoom in on and manipulate any inline or block-level element without JavaScript. Once support for these properties becomes widespread, we’ll be able to build and design even richer and more lightweight interfaces and applications.&lt;/p&gt;&lt;h3&gt;Transition&lt;/h3&gt;&lt;p&gt;A basic transition refers to a CSS property that define and moves an element from its inactive state (e.g. dark-blue background) to its hover or active state (e.g. light-blue background).&lt;/p&gt;&lt;p&gt;Transitions can be coupled with transformations (and trigger events such as &lt;code&gt;:hover&lt;/code&gt; or &lt;code&gt;:focus&lt;/code&gt;) to create a kind of animation. Fading the background color, sliding a block and spinning an object can all be done with CSS transitions.&lt;/p&gt;&lt;pre&gt;#nav a{
background-color:red;
}

#nav a:hover,
#nav a:focus{
background-color:blue;

/* tell the transition to apply to background-color (looks like a CSS variable, doesn't it? #foreshadowing)*/
-webkit-transition-property:background-color;

/* make it 2 seconds long */
-webkit-transition-duration:2s;
}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;br&gt; As cool as the transition property is, support is mostly limited to &lt;strong&gt;WebKit&lt;/strong&gt; browsers. &lt;code&gt;-moz-transition&lt;/code&gt; already works in the latest nightly build of Firefox 3.7 (so it’s guaranteed for the future). So it’s safe to assume that it is right behind WebKit on this. So you may as well add &lt;code&gt;-moz-transition&lt;/code&gt; to your CSS for future enhancements. And even a version without a vendor extension, just in case.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Is it okay to use?&lt;/strong&gt;&lt;br&gt; For subtle enhancements, yes, but not for dramatic effects.&lt;/p&gt;&lt;h3&gt;Animation&lt;/h3&gt;&lt;p&gt;Animations are where the real action in CSS 3 is. You can combine all of the elements we’ve talked about above with animation properties like &lt;code&gt;animation-duration&lt;/code&gt;, &lt;code&gt;animation-name&lt;/code&gt; and &lt;code&gt;animation-timing-function&lt;/code&gt; to create Flash-like animations with pure CSS.&lt;/p&gt;&lt;p&gt;&lt;embed width="425" height="344" src="http://www.youtube-nocookie.com/v/BqYHlRZoTak&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;pre&gt;#rotate {
margin: 0 auto;
width: 600px;
height: 400px;

/* Ensures we're in 3-D space */
-webkit-transform-style: preserve-3d;

/*
Make the whole set of rows use the x-axis spin animation
for a duration of 7 seconds, running infinitely and linearly.
*/

-webkit-animation-name: x-spin;
-webkit-animation-duration: 7s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}

/* Defining the animation to be called. */
@-webkit-keyframes x-spin {
   0%    { -webkit-transform: rotateX(0deg); }
   50%   { -webkit-transform: rotateX(180deg); }
   100%  { -webkit-transform: rotateX(360deg); }
}&lt;/pre&gt;&lt;p&gt;All this fantastic CSS animation code and a live example can be found at &lt;a href="http://webkit.org/blog-files/3d-transforms/poster-circle.html"&gt;CSS3.info demo&lt;/a&gt;. The demo is viewable in any browser, but the animation works only in the &lt;a href="http://nightly.webkit.org/"&gt;nightly build of WebKit&lt;/a&gt;. It looks just like the video above, but it’s worth installing WebKit to see it for yourself (it’s pretty awesome).&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Support&lt;/strong&gt;There is, unfortunately, only a limited support for CSS animations yet. 2D CSS animations work in Safari 4 (Leopard), Chrome 3, Safari Mobile, Shira and other Webkit browsers. Safari 4 (Snow Leopard) supports 3D animations.&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;Right now, JavaScript bridges the gap until CSS 3 comes into full effect. Unfortunately, getting full browser support for these great properties will be a long journey. Until that day comes, we can take advantage of some serious &lt;strong&gt;progressive enhancement&lt;/strong&gt; and rely on JavaScript to enhance our websites and applications. That’s not a bad thing; just how it is at the moment.&lt;/p&gt;&lt;p&gt;With the recent &lt;a href="http://www.readwriteweb.com/archives/microsoft_announces_ie9_html5_css4_javascript_performance.php"&gt;announcement of IE9&lt;/a&gt;, I wouldn’t be surprised if the IE team include some of these properties in the new version of the browser especially since talks for CSS3 integration have already begun (border-radius).&lt;/p&gt;&lt;p&gt;The future of the Web is bright, especially with these highly experimental properties such as &lt;strong&gt;animation&lt;/strong&gt;. Although many of the properties are not usable for client or high-level production work, they sure are fun to play with! We can all look forward to the day when we have support across the board to build some really great lightweight applications.&lt;/p&gt;&lt;h3&gt;References And Resources&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://net.tutsplus.com/videos/screencasts/a-crash-course-in-advanced-css3-effects/"&gt;A Crash Course in Advanced CSS3 Effects&lt;/a&gt;&lt;br&gt; Net Tuts put out a great screencast on a lot of cool CSS 3 effects.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.css3.info/webkit-announces-support-for-css-3d-transforms/"&gt;Webkit Announces Support for CSS 3D Transforms&lt;/a&gt;&lt;br&gt; CSS3.info has a great demo of CSS 3 animations that are supported by the nightly build of WebKit.&lt;/li&gt;&lt;li&gt;&lt;a href="http://snook.ca/archives/html_and_css/css-text-rotation"&gt;Jonathan Snook on CSS Text Rotation&lt;/a&gt;&lt;br&gt; Jonathan Snook tackles this up-and-coming CSS3 property.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.slideshare.net/incidentist/predevcampsf-css3-tricks-1838843"&gt;DEV Camp CSS3 Tricks&lt;/a&gt;&lt;br&gt; A slideshow presentation by Dan Kurtz.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/css3-2d-transforms/"&gt;W3C Spec on 2-D Transformations&lt;/a&gt;&lt;br&gt; A resource specifically about 2-D transformations.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/css3-3d-transforms/"&gt;W3C Spec on 3-D Transformations&lt;/a&gt;&lt;br&gt; A resource specifically about 3-D transformations.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3.org/TR/css3-animations/"&gt;W3C Spec on CSS3 Animations&lt;/a&gt;&lt;br&gt; The W3C working draft specifications for CSS animations.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;We express sincere gratitude to Andy Clarke and Hugh Isaacs II for corrections to this article.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;(al)&lt;/em&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;small&gt;© Tim Wright for &lt;a href="http://www.smashingmagazine.com"&gt;Smashing Magazine&lt;/a&gt;, 2009. | &lt;a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/#comments"&gt;38 comments&lt;/a&gt; | &lt;a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/&amp;amp;title=What%20You%20Need%20To%20Know%20About%20Behavioral%20CSS"&gt;Add to del.icio.us&lt;/a&gt; | &lt;a title="Bookmark in Digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;Digg this&lt;/a&gt; | &lt;a title="Stumble on StumbleUpon" href="http://www.stumbleupon.com/submit?url=http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;Stumble on StumbleUpon!&lt;/a&gt; | &lt;a title="Tweet us!" href="http://twitter.com/home?status=@tweetmeme%20@smashingmag%20Reading%20&amp;#39;What%20You%20Need%20To%20Know%20About%20Behavioral%20CSS&amp;#39;%20http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;Tweet it!&lt;/a&gt; | &lt;a title="Bookmark in Reddit" href="http://reddit.com/submit?url=http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/"&gt;Submit to Reddit&lt;/a&gt; | &lt;a href="http://forum.smashingmagazine.com/"&gt;Forum Smashing Magazine&lt;/a&gt;&lt;br&gt; Post tags: &lt;a href="http://www.smashingmagazine.com/tag/animation/" rel="tag"&gt;animation&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/behavioral/" rel="tag"&gt;behavioral&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/css/" rel="tag"&gt;CSS&lt;/a&gt;&lt;br&gt; &lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EHgqDaoyhPJJg4zozX0mpddGLSw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EHgqDaoyhPJJg4zozX0mpddGLSw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EHgqDaoyhPJJg4zozX0mpddGLSw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EHgqDaoyhPJJg4zozX0mpddGLSw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/B41y4ngYqgQ" height="1" width="1"/&gt;</content><author><name>Tim Wright</name></author><gr:likingUser>10309887133559368348</gr:likingUser><gr:likingUser>06088856953299107008</gr:likingUser><gr:likingUser>08052501718204634313</gr:likingUser><gr:likingUser>10945614681714123683</gr:likingUser><gr:likingUser>02508319771731836425</gr:likingUser><gr:likingUser>00727975180528743200</gr:likingUser><gr:likingUser>01932265055854809138</gr:likingUser><gr:likingUser>08324016905050090673</gr:likingUser><gr:likingUser>01689807457492837403</gr:likingUser><gr:likingUser>02340674596527569526</gr:likingUser><gr:likingUser>11464273237756462225</gr:likingUser><gr:likingUser>12161298058133441395</gr:likingUser><gr:likingUser>16259219637744929956</gr:likingUser><gr:likingUser>08106817290465149326</gr:likingUser><gr:likingUser>14862241603992271880</gr:likingUser><gr:likingUser>15352503846982075649</gr:likingUser><gr:likingUser>08834285752834285238</gr:likingUser><gr:likingUser>07803639457955864603</gr:likingUser><gr:likingUser>08062803592545546592</gr:likingUser><gr:likingUser>06671951975819879292</gr:likingUser><gr:likingUser>02437435402682285872</gr:likingUser><gr:likingUser>12309577003091211296</gr:likingUser><gr:likingUser>03994345909668016089</gr:likingUser><gr:likingUser>18046263665241465025</gr:likingUser><gr:likingUser>11128637285542362832</gr:likingUser><gr:likingUser>04348924530631954880</gr:likingUser><gr:likingUser>02217763819457309919</gr:likingUser><gr:likingUser>13229290198750143310</gr:likingUser><gr:likingUser>12655244134289528032</gr:likingUser><gr:likingUser>11750786551375619716</gr:likingUser><gr:likingUser>08915738386789788455</gr:likingUser><gr:likingUser>15118660906873240762</gr:likingUser><gr:likingUser>00156412759055008635</gr:likingUser><gr:likingUser>16151483297575466336</gr:likingUser><gr:likingUser>04375073826703292858</gr:likingUser><gr:likingUser>17109652482333750556</gr:likingUser><gr:likingUser>09830543404928922394</gr:likingUser><gr:likingUser>12833329287130595555</gr:likingUser><gr:likingUser>10768584245807817635</gr:likingUser><gr:likingUser>18281847282686570686</gr:likingUser><gr:likingUser>17354355081757593495</gr:likingUser><gr:likingUser>02917082363357831782</gr:likingUser><gr:likingUser>00140563535682910421</gr:likingUser><gr:likingUser>10249099827136609766</gr:likingUser><gr:likingUser>07964064472159271834</gr:likingUser><gr:likingUser>18306667675009704965</gr:likingUser><gr:likingUser>13531600501277868621</gr:likingUser><gr:likingUser>07871283238073091975</gr:likingUser><gr:likingUser>02794233301474787441</gr:likingUser><gr:likingUser>03855401635443872160</gr:likingUser><gr:likingUser>12494265417386106748</gr:likingUser><gr:likingUser>11890475383419165336</gr:likingUser><gr:likingUser>11341373661332893085</gr:likingUser><gr:likingUser>02138596951619052394</gr:likingUser><gr:likingUser>15998627627504288998</gr:likingUser><gr:likingUser>08737491549844815179</gr:likingUser><gr:likingUser>12339601264128384251</gr:likingUser><gr:likingUser>02387662866172484980</gr:likingUser><gr:likingUser>08540237888529174157</gr:likingUser><gr:likingUser>17682772143167628731</gr:likingUser><gr:likingUser>05763784985202178726</gr:likingUser><gr:likingUser>09862655810259140602</gr:likingUser><gr:likingUser>03914791958430470550</gr:likingUser><gr:likingUser>14150231642317055636</gr:likingUser><gr:likingUser>10010392708415245866</gr:likingUser><gr:likingUser>05452478653889588688</gr:likingUser><gr:likingUser>08353071865093295707</gr:likingUser><gr:likingUser>11097562011573655561</gr:likingUser><gr:likingUser>15448813867404335575</gr:likingUser><gr:likingUser>02981109925351712415</gr:likingUser><gr:likingUser>02171985167545547728</gr:likingUser><gr:likingUser>12698896250559825668</gr:likingUser><gr:likingUser>01566022490574801555</gr:likingUser><gr:likingUser>17526587290271802812</gr:likingUser><gr:likingUser>07350669103529783200</gr:likingUser><gr:likingUser>07282213484850555428</gr:likingUser><gr:likingUser>12902028043276192031</gr:likingUser><gr:likingUser>07492842039383601274</gr:likingUser><gr:likingUser>06761959087549189843</gr:likingUser><gr:likingUser>15015949204647978373</gr:likingUser><gr:likingUser>03909136177877641863</gr:likingUser><gr:likingUser>18376340724238694556</gr:likingUser><gr:likingUser>09610969872428317214</gr:likingUser><gr:likingUser>13318376628873997584</gr:likingUser><gr:likingUser>07840276037716274689</gr:likingUser><gr:likingUser>04989918227082181503</gr:likingUser><gr:likingUser>04557757868102387941</gr:likingUser><gr:likingUser>03622451805226554914</gr:likingUser><gr:likingUser>09500435200380520421</gr:likingUser><gr:likingUser>11218858918248997568</gr:likingUser><gr:likingUser>02457067948473841730</gr:likingUser><gr:likingUser>07233467767096896762</gr:likingUser><gr:likingUser>09543392838995549629</gr:likingUser><gr:likingUser>00116691364180789377</gr:likingUser><gr:likingUser>12394294225977370818</gr:likingUser><gr:likingUser>10324343687435299908</gr:likingUser><gr:likingUser>12016275666514051512</gr:likingUser><gr:likingUser>09603836401746943882</gr:likingUser><gr:likingUser>01125507058465149796</gr:likingUser><gr:likingUser>02154838240142105701</gr:likingUser><source gr:stream-id="feed/http://rss1.smashingmagazine.com/feed/"><id>tag:google.com,2005:reader/feed/http://rss1.smashingmagazine.com/feed/</id><title type="html">Smashing Magazine Feed</title><link rel="alternate" href="http://www.smashingmagazine.com/" type="text/html" /></source><feedburner:origLink>http://www.smashingmagazine.com/2009/12/19/what-you-need-to-know-about-behavioral-css/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1261168479862"><id gr:original-id="http://css-tricks.com/?p=5080">tag:google.com,2005:reader/item/956f54ca55bf933d</id><category term="Article" /><title type="html">Don’t Use Black for Shadows</title><published>2009-12-18T14:29:48Z</published><updated>2009-12-18T14:29:48Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/hg9sr6c1OgY/" type="text/html" /><content xml:base="http://css-tricks.com/" type="html">&lt;p&gt;That is, “don’t use black for shadows over colored backgrounds.” At every step of my design education I was taught this. For example, when adding a drop shadow as a layer style in Photoshop, don’t just pick a black or a gray but sample a color from the background, then dial it back in opacity until it looks good. &lt;strong&gt;This is because shadows in real life are not black.&lt;/strong&gt; They are darkened versions of whatever they sit on top of, because there is less light. Check out &lt;a href="http://www.flickr.com/photos/nikonvscanon/474310396/"&gt;this shadow&lt;/a&gt;. If you were trying to recreate that, I don’t think black at any opacity level would get it just right.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now that we have the (awesome) RGBa in our CSS toolbox, I’ve been hearing and seeing people use dialed back black (e.g. &lt;tt&gt;rgba(0,0,0,0.5)&lt;/tt&gt; ) for backgrounds and shadows. This is being taught and encouraged with comments like “&lt;em&gt;the shadow color will pick up the background color because of the opacity&lt;/em&gt;“. True, it will, but it will be mixed with black, not a deeper toned version of itself. &lt;/p&gt;
&lt;p&gt;I’ve heard &lt;a href="http://simplebits.com/"&gt;Dan Cederholm&lt;/a&gt; teach this at &lt;a href="http://aneventapart.com/"&gt;An Event Apart&lt;/a&gt; and in &lt;a href="http://simplebits.com/publications/bulletproof/"&gt;Bulletproof Web Design&lt;/a&gt;. Meagan Fischer also has a &lt;a href="http://owltastic.com/2009/12/shadows-and-css3/"&gt;recent tutorial&lt;/a&gt; with black as the example shadow color. Dan  and Meagan are better designers and smarter people than myself, so I’m not trying to get up in their grills. I think their point is that it’s smarter and more future-proof to use black, because black can sit on any background color equally well, whereas a toned shadow only works on that tone. &lt;/p&gt;
&lt;p&gt;My point is, if you are going to change the background color, you are making changes to CSS. So while you are doing that, just change the shadow tone also. If you can’t control what the text/box shadow is going to be on top of then yes, use black. If you can, use a toned shadow.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://css-tricks.com/examples/ColoredShadows/"&gt;View Demo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Or am I whack? Is using black basically the same thing as a “darker version of itself”? I just bring this up because I’ve been seeing this a lot lately and literally during school and at various jobs I’ve had were we always taught to tone shadows.&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=hg9sr6c1OgY:aymAMMwhI94:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=hg9sr6c1OgY:aymAMMwhI94:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=hg9sr6c1OgY:aymAMMwhI94:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=hg9sr6c1OgY:aymAMMwhI94:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=hg9sr6c1OgY:aymAMMwhI94:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=hg9sr6c1OgY:aymAMMwhI94:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=hg9sr6c1OgY:aymAMMwhI94:D7DqB2pKExk" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CssTricks/~4/hg9sr6c1OgY" height="1" width="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gkixlzZB0j5UDVVgdI3wiVTVAtg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gkixlzZB0j5UDVVgdI3wiVTVAtg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gkixlzZB0j5UDVVgdI3wiVTVAtg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gkixlzZB0j5UDVVgdI3wiVTVAtg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/hg9sr6c1OgY" height="1" width="1"/&gt;</content><author><name>Chris Coyier</name></author><gr:likingUser>15713020466853621525</gr:likingUser><gr:likingUser>05100253600421418060</gr:likingUser><gr:likingUser>01120564622101712306</gr:likingUser><gr:likingUser>12204857212087781285</gr:likingUser><gr:likingUser>06725124405813546022</gr:likingUser><gr:likingUser>17796562442174829953</gr:likingUser><gr:likingUser>13043380739421254619</gr:likingUser><gr:likingUser>07871283238073091975</gr:likingUser><gr:likingUser>15483779953835665519</gr:likingUser><gr:likingUser>17281071294812245107</gr:likingUser><gr:likingUser>02138596951619052394</gr:likingUser><gr:likingUser>11041259240390731751</gr:likingUser><gr:likingUser>13001326332658727932</gr:likingUser><gr:likingUser>01236369857306066291</gr:likingUser><gr:likingUser>09215192295243246914</gr:likingUser><gr:likingUser>03545964666694920486</gr:likingUser><gr:likingUser>13459642811750487213</gr:likingUser><gr:likingUser>10004739805070549440</gr:likingUser><gr:likingUser>15567131602334186648</gr:likingUser><gr:likingUser>14245148617617684198</gr:likingUser><gr:likingUser>08319530166990670811</gr:likingUser><gr:likingUser>13552916621227081992</gr:likingUser><gr:likingUser>07318816126843065065</gr:likingUser><gr:likingUser>01816360955994609875</gr:likingUser><source gr:stream-id="feed/http://feeds2.feedburner.com/CssTricks"><id>tag:google.com,2005:reader/feed/http://feeds2.feedburner.com/CssTricks</id><title type="html">CSS-Tricks</title><link rel="alternate" href="http://css-tricks.com" type="text/html" /></source><feedburner:origLink>http://css-tricks.com/dont-use-black-for-shadows/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1261084914237"><id gr:original-id="http://www.alsacreations.com/actu/lire/919-ce-que-nous-reserve-css3-en-2010.html">tag:google.com,2005:reader/item/22e537fbaae4d2c3</id><category term="CSS" /><title type="html">Ce que nous réserve CSS3 en 2010</title><published>2009-12-16T17:00:32Z</published><updated>2009-12-16T17:00:32Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/0Fi0k8kTQDc/919-ce-que-nous-reserve-css3-en-2010.html" type="text/html" /><author><name>Simon-K</name></author><gr:likingUser>04999804935254185022</gr:likingUser><gr:likingUser>15296327653301752200</gr:likingUser><gr:likingUser>04058372316706064740</gr:likingUser><gr:likingUser>00459043915906811523</gr:likingUser><gr:likingUser>15100447584155044716</gr:likingUser><gr:likingUser>12029076761605262081</gr:likingUser><gr:likingUser>15830514862231437266</gr:likingUser><gr:likingUser>00081129251568396714</gr:likingUser><gr:likingUser>10071513426413084146</gr:likingUser><gr:likingUser>12343205841721043478</gr:likingUser><gr:likingUser>02767787195812880824</gr:likingUser><gr:likingUser>14920305170407433658</gr:likingUser><gr:likingUser>01522589382826831297</gr:likingUser><gr:likingUser>02387662866172484980</gr:likingUser><gr:likingUser>04238212857801197031</gr:likingUser><gr:likingUser>06480168482132488821</gr:likingUser><gr:likingUser>14809378125451252795</gr:likingUser><gr:likingUser>02457067948473841730</gr:likingUser><gr:likingUser>01125507058465149796</gr:likingUser><gr:likingUser>00956103531911325123</gr:likingUser><gr:likingUser>06108878049010176171</gr:likingUser><gr:likingUser>18398279764682871039</gr:likingUser><gr:likingUser>08319530166990670811</gr:likingUser><gr:likingUser>07262790675765699161</gr:likingUser><gr:likingUser>07571323106285782188</gr:likingUser><source gr:stream-id="feed/http://blog.alsacreations.com/rss.php"><id>tag:google.com,2005:reader/feed/http://blog.alsacreations.com/rss.php</id><title type="html">Alsacreations.com - Actualités</title><link rel="alternate" href="http://www.alsacreations.com/rss/actualites.xml" type="text/html" /></source><content type="html">&lt;p&gt;L'écriture des spécifications CSS progresse à grands pas, et la version 3 comporte déjà plusieurs modules implémentés dans les navigateurs récents. L'année 2010 verra certainement nos habitudes changées par les nouvelles possibilités offertes en CSS 3. D'ores et déjà de nombreuses utilisations concrètes voient le jour.&lt;/p&gt;

&lt;p&gt;Vous pourrez constater l'état d'avancement des différents modules CSS sur la page récapitulative &lt;a href="http://www.w3.org/Style/CSS/current-work" hreflang="en"&gt;Cascading Style Sheets : Current Work&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Des coins arrondis&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Du &lt;q&gt;Web 2.0&lt;/q&gt; avec style&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La propriété &lt;code&gt;border-radius&lt;/code&gt; arrondit les angles de n'importe quel élément HTML, sans avoir besoin d'images ni de JavaScript.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/radius.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://buildinternet.com/2009/10/using-rounded-corners-with-css3/" hreflang="en"&gt;Using Rounded Corners with CSS3 (EN)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/radius3.jpg" alt=""&gt;&lt;br&gt;
&lt;a href="http://www.alsacreations.com/tuto/lire/891-coins-arrondis-css-sans-images.html"&gt;Créer des coins arrondis en CSS et sans images&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/radius2.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.the-art-of-web.com/css/border-radius/" hreflang="en"&gt;CSS: border-radius and -moz-border-radius (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;La gestion de l'opacité&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;La transparence enfin maîtrisée !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'interprétation des images transparentes en PNG (24 bits) est une première délivrance pour les web-designers qui pourront mettre en œuvre plus de créativité. La nouvelle notation des couleurs et de la gestion intégrée de leur transparence (RGBa) va être une seconde avancée significative.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/transparence.jpg" alt=""&gt;&lt;br&gt;
&lt;a href="http://www.alsacreations.com/tuto/lire/909-CSS-transparence-couleur-rgba.html"&gt;CSS3 : la transparence de couleur avec RGBa&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/transparence2.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://css.flepstudio.org/en/css3/opacity-transparency.html" hreflang="en"&gt;CSS3 opacity : transparency of an element in css (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Les arrière plans multiples&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Elle n'est pas (plus) belle la vie ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grâce aux nouvelles valeurs multiples utilisables dans la propriété CSS &lt;code&gt;background&lt;/code&gt;, il sera désormais possible d'appliquer plusieurs images d'arrière-plan sur le même élément, sans devoir en imbriquer plusieurs.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/multiple-background.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.alsacreations.com/tuto/lire/814-css3-background-image-multiple.html"&gt;Arrière-plans avec CSS 3 Backgrounds&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Le multi colonage&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;De la &lt;abbr title="Publication Assistée par Ordinateur"&gt;P.A.O.&lt;/abbr&gt; sur le Web ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les propriétés &lt;code&gt;column-width&lt;/code&gt; et &lt;code&gt;column-gap&lt;/code&gt; vont générer une mise en page sous forme de colonnes multiples, où le texte va s'écouler automatiquement d'une colonne à la suivante.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/multiples-colonnes3.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.zenelements.com/blog/css3-multiple-columns/" hreflang="en"&gt;CSS3 Multiple Columns (EN)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/multiples-colonnes2.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.css3.info/preview/multi-column-layout/" hreflang="en"&gt;Multi-column layout (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Les ombrages&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nul besoin d'un surcroît d'images&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La propriété &lt;code&gt;box-shadow&lt;/code&gt; crée un ombrage solide ou dégradé sur tous les éléments HTML.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/box-shadow.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.bloggingcss.com/en/tutorials/css3-box-shadow-property/" hreflang="en"&gt;CSS3 box-shadow property (EN)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/box-shadow21.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.alsacreations.com/tuto/lire/910-creer-des-ombrages-ombres-css-box-shadow-text-shadow.html" hreflang="en"&gt;Les ombrages en CSS3&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Des effets sur le texte&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Les CSS3 concurrencent les styles Photoshop ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/text-effet.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.alsacreations.com/tuto/lire/910-creer-des-ombrages-ombres-css-box-shadow-text-shadow.html"&gt;Les ombrages en CSS3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/text-effet2.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.css3.info/preview/text-shadow/" hreflang="en"&gt;Text-shadow, Photoshop like effects using CSS (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Des boutons esthétiques&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Arrondis, dégradés, animés.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'association de plusieurs propriétés CSS3 permet de concevoir des boutons de lien d'une esthétique irréprochable sans utiliser d'images.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/boutons.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://www.zurb.com/article/266/super-awesome-buttons-with-css3-and-rgba" hreflang="en"&gt;Super Awesome Buttons with CSS3 and RGBA (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Les polices exotiques&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Les polices &lt;em&gt;web-safe&lt;/em&gt; ne sont plus seules.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;@font-face&lt;/code&gt; permet d'incorporer des polices externes et variées.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/font-face.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://css-tricks.com/snippets/css/using-font-face/" hreflang="en"&gt;Using @font-face (EN)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/font-face2.jpg" alt=""&gt;&lt;br&gt;&lt;a href="http://spyrestudios.com/21-awesome-font-face-embedable-typefaces/" hreflang="en"&gt;21 Awesome @font-face Embeddable Typefaces (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Les dégradés&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Un peu de douceur dans ce monde uni.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;De nouvelles propriétés &lt;code&gt;gradient&lt;/code&gt; permettent de réaliser et gérer des arrière-plans de teintes dégradées.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/degrade-css.jpg" alt="degradé-css"&gt;&lt;br&gt;&lt;a href="http://www.alsacreations.com/tuto/lire/813-css3-background-radial-gradient.html"&gt;Arrière-plans avec CSS3 Backgrounds&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Des animations&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;q title="Et pourtant elle tourne !"&gt;E pur si muove !&lt;/q&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grâce aux dernières évolutions du langage et au module Transitions, il est désormais possible de réaliser des transitions basiques.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/transition-css.jpg" alt="transitions-css"&gt;&lt;br&gt;&lt;a href="http://www.alsacreations.com/tuto/lire/873-transitions-css3-animations.html"&gt;Transitions CSS3&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Les sélecteurs&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;La fin de la Divite et de la Classite chronique ?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les nouveaux sélecteurs CSS3 vont faciliter le nommage des éléments particuliers (le second de la liste, les lignes impaires d'un tableau, ...).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/large/css3-selectors.jpg" alt="selecteur-css"&gt;&lt;br&gt;&lt;a href="http://www.456bereastreet.com/archive/200601/css_3_selectors_explained/" hreflang="en"&gt;CSS 3 selectors explained (EN)&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;CSS3, couplé à HTML5 (ou pas), va permettre de réaliser des effets réservés jusque-là à JavaScript ou aux découpes d'images contraignantes (ombrage, survol, arrondis...). Si on ajoute que jQuery et les autres frameworks commencent à s'imposer dans de nombreuses applications web (diaporama, interface cliente riche...), l'année 2010 sera mouvementée ! Bien entendu, il est important de rappeler que certains navigateurs n'ont pas encore implémenté l'ensemble de ces fonctionnalités.&lt;/p&gt;

&lt;h3&gt;Pour aller plus loin (en anglais)&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://net.tutsplus.com/tutorials/html-css-techniques/11-classic-css-techniques-made-simple-with-css3/" hreflang="en"&gt;11 Classic CSS Techniques Made Simple with CSS3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://net.tutsplus.com/tutorials/html-css-techniques/html-5-and-css-3-the-techniques-youll-soon-be-using/" hreflang="en"&gt;HTML 5 and CSS 3: The Techniques You'll Soon Be Using&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.noupe.com/jquery/5-css3-techniques-for-major-browsers-using-the-power-of-jquery.html" hreflang="en"&gt;5 CSS3 Techniques For Major Browsers using the Power of jQuery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.css3.info"&gt;CSS3.info&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sylvainartois.fr.nf/node/15"&gt;CSS 3, tout le monde est prêt, sauf IE8 ...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/07/13/css-3-cheat-sheet-pdf/"&gt;CSS 3 Cheat Sheet (PDF)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.socialh.com/2009/12/most-interesting-css3-tutorials.html"&gt;Most Interesting CSS3 Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.2expertsdesign.com/fundamental-css3-resources-for-designers.html"&gt;Fundamental CSS3 Resources for Designers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.amazon.fr/gp/product/1430228741?ie=UTF8&amp;amp;tag=alsacreatio09-21&amp;amp;linkCode=as2&amp;amp;camp=1642&amp;amp;creative=6746&amp;amp;creativeASIN=1430228741"&gt;Un livre sur HTML5 et CSS3 &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Pushing Your Buttons With Practical CSS3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://sixrevisions.com/web-development/five-technologies-that-will-keep-shaping-the-web-in-2010/"&gt;Five Technologies That Will Keep Shaping the Web in 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.1stwebdesigner.com/css/must-read-css3-tips-tricks-tutorial-sites/"&gt;33 Must Read CSS3 Tips, Tricks, Tutorial Sites and Articles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a hreflang="en" href="http://www.1stwebdesigner.com/css/advanced-css-text-effects-web-typography-tips/"&gt;22 Advanced CSS Text Effects And Web Typography Tips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a6N8G3hjGOAr1hB30lV88mHK694/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a6N8G3hjGOAr1hB30lV88mHK694/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a6N8G3hjGOAr1hB30lV88mHK694/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a6N8G3hjGOAr1hB30lV88mHK694/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/0Fi0k8kTQDc" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.alsacreations.com/actu/lire/919-ce-que-nous-reserve-css3-en-2010.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1260909749866"><id gr:original-id="urn:md5:137ed79ad7d17580cd425cd307088c72">tag:google.com,2005:reader/item/68e0f4e7925f6abb</id><category term="CSS and style" /><title type="html">Selectors Level 3</title><published>2009-12-15T17:46:00Z</published><updated>2009-12-15T17:46:00Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/U0jZTBQg0kQ/index.php" type="text/html" /><author><name>glazou</name></author><gr:likingUser>04171880377383404375</gr:likingUser><source gr:stream-id="feed/http://www.glazman.org/weblog/dotclear/index.php?feed/rss2"><id>tag:google.com,2005:reader/feed/http://www.glazman.org/weblog/dotclear/index.php?feed/rss2</id><title type="html">&amp;lt;Glazblog/&amp;gt;</title><link rel="alternate" href="http://www.glazman.org/weblog/dotclear/index.php?" type="text/html" /></source><content type="html">&lt;p&gt;I have the intense pleasure to let you know that the specification &lt;a href="http://www.w3.org/TR/css3-selectors/"&gt;Selectors Level 3&lt;/a&gt; just became officially a Proposed Recommendation !!! YAY !!!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ic8TvAUSQEzL1y2r-Y9Znzrl6Jc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ic8TvAUSQEzL1y2r-Y9Znzrl6Jc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ic8TvAUSQEzL1y2r-Y9Znzrl6Jc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ic8TvAUSQEzL1y2r-Y9Znzrl6Jc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/U0jZTBQg0kQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.glazman.org/weblog/dotclear/index.php?post/2009/12/15/Selectors-Level-3</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1260536283499"><id gr:original-id="http://www.smashingmagazine.com/?p=16064">tag:google.com,2005:reader/item/42c2e2381d5e9824</id><category term="CSS" scheme="http://www.smashingmagazine.com" /><category term="lists" scheme="http://www.smashingmagazine.com" /><title type="html">Styling HTML Lists with CSS: Techniques and Resources</title><published>2009-12-11T11:27:15Z</published><updated>2009-12-11T11:49:45Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/kHmWtKTTONY/" type="text/html" /><content xml:base="http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/" xml:lang="en" type="html">&lt;table width="650"&gt;&lt;tr&gt;&lt;td width="650"&gt;&lt;div style="width:650px"&gt; &lt;img src="http://creatives.commindo-media.de/static/smashing-magazine-advertisement.gif" alt="Smashing-magazine-advertisement in Styling HTML Lists with CSS: Techniques and Resources" border="0"&gt;&lt;br&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=56"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=56" border="0" alt=" in Styling HTML Lists with CSS: Techniques and Resources"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=63"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=63" border="0" alt=" in Styling HTML Lists with CSS: Techniques and Resources"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=64"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=64" border="0" alt=" in Styling HTML Lists with CSS: Techniques and Resources"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;img src="http://imp.constantcontact.com/imp/cmp.jsp?impcc=IMP_DIMPBPRSMASHRSS&amp;amp;o=http://img.constantcontact.com/lp/images/standard/spacer.gif" alt="Spacer in Styling HTML Lists with CSS: Techniques and Resources" border="0" width="1" height="1"&gt;&lt;/p&gt;&lt;p&gt;In an online world now dominated by CSS layouts, CSS-styled HTML lists have become invaluable tools in a CSS developer’s toolbox, due to the HTML lists versatile and graphically flexible nature. All this despite some of the obvious browser inconsistencies that can affect the styling of the different types of lists available in HTML coding.&lt;/p&gt;&lt;p&gt;If you’re new to CSS, this article should provide a good overview of the different types of lists available, as well as some of the browser quirks that occur in relation to HTML lists, with some helpful advice that should prevent those quirks from becoming major road blocks to good design.&lt;/p&gt;&lt;p&gt;In addition, we’ll look at a &lt;strong&gt;showcase of various uses, techniques, and tutorials that utilize HTML lists&lt;/strong&gt;. All of this should put strong emphasis on the importance of using lists in modern web design, reminding even experienced coders how HTML lists can improve the flexibility and maintainability of a website.&lt;/p&gt;&lt;h3&gt;Available List Options&lt;/h3&gt;&lt;h4&gt;Unordered Lists: &amp;lt;ul&amp;gt;&lt;/h4&gt;&lt;p&gt;Unordered lists are the most commonly used lists. Here is an image showing what an unstyled unordered list looks like in different browsers:&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/lists-browsers.jpg" alt="Lists-browsers in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="340"&gt;&lt;/p&gt;&lt;p&gt;As you can see above, the default settings for unordered lists are somewhat different across various browsers. Of course, &lt;strong&gt;nowadays it is rare to see a naked unordered list&lt;/strong&gt; on any website. Also, a good &lt;a href="http://meyerweb.com/eric/tools/css/reset/"&gt;CSS reset&lt;/a&gt; will normalize those differences, bringing the list down to bare text with no bullets and no margins or padding.&lt;/p&gt;&lt;p&gt;CSS properties that are specific to unordered lists include &lt;code&gt;list-style-type&lt;/code&gt;, &lt;code&gt;list-style-position&lt;/code&gt;, and &lt;code&gt;list-style-image.&lt;/code&gt; These properties set the type of marker (or bullet), the position of the marker, and an image to replace the marker. These three properties can be combined using the shorthand &lt;code&gt;list-style&lt;/code&gt; property.&lt;/p&gt;&lt;p&gt;The &lt;code&gt;list-style-type&lt;/code&gt; property can be set to a number of different values, some of which are shown in the chart below:&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/list-markers.jpg" alt="List-markers in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="181"&gt;&lt;/p&gt;&lt;p&gt;Depending on the user’s browser and system, certain values for &lt;code&gt;list-style-item&lt;/code&gt; may not appear correctly, often defaulting to &lt;code&gt;decimal&lt;/code&gt;. Using an incrementing value for an unordered list is not recommended since that would take away the semantic value of the &lt;strong&gt;unordered&lt;/strong&gt; list.&lt;/p&gt;&lt;p&gt;The &lt;code&gt;list-style-position&lt;/code&gt; property specifies the position of the list marker, and can be set to either &lt;code&gt;outside&lt;/code&gt; (the default) or &lt;code&gt;inside&lt;/code&gt;. This property would also set the position of an image, if the &lt;code&gt;list-style-image&lt;/code&gt; property is set.&lt;/p&gt;&lt;p&gt;The &lt;code&gt;list-style-image&lt;/code&gt; property can be used to give the unordered list a custom look with unique “bullets”. Unfortunately, &lt;strong&gt;this method of adding a bullet to an unordered list is buggy in Internet Explorer&lt;/strong&gt;, and is rarely used. A much better solution is to add a background image to the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; elements on the list, adjusting the position of the background image accordingly, and setting it to &lt;code&gt;no-repeat&lt;/code&gt;. This solution is explained through a series of steps at &lt;a href="http://css.maxdesign.com.au/listutorial/introduction.htm"&gt;maxdesign.com&lt;/a&gt;, and works nicely in all browsers.&lt;/p&gt;&lt;h4&gt;Ordered Lists: &amp;lt;ol&amp;gt;&lt;/h4&gt;&lt;p&gt;Ordered lists are used when a list of items requires a visible incrementing value before each item. The value for the marker on an ordered list can be set to any of the values also available for an unordered list, as discussed above. In most cases, an ordered list would either have an incrementing marker on the list items, or no marker at all. So, it would be unlikely that you would change the marker from an incrementing one to a non-incrementing one on an &lt;strong&gt;ordered list&lt;/strong&gt;, since that would remove the semantic value of the items.&lt;/p&gt;&lt;h4&gt;Definition Lists: &amp;lt;dl&amp;gt;&lt;/h4&gt;&lt;p&gt;Definition lists are used to mark up lists of items that have definitions. They consist of definition terms (&lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt;) along with definitions (&lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt;). The pairings for definition list items do not have to be exactly paired up. The following is perfectly valid in XHTML Strict:&lt;/p&gt;&lt;pre&gt;
&amp;lt;dl&amp;gt;
	&amp;lt;dt&amp;gt;calculator&amp;lt;/dt&amp;gt;
	&amp;lt;dt&amp;gt;abacus&amp;lt;/dt&amp;gt;
	&amp;lt;dd&amp;gt;A machine used for making numerical calculations.&amp;lt;/dd&amp;gt;
&amp;lt;/dl&amp;gt;
&lt;/pre&gt;&lt;p&gt;Thus, you could have more than one &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; with a single &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt;, or even have multiple &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt; tags and only one &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;The visual display of a definition list, by default, is virtually the same across all browsers, as shown in the image below:&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/definition-list.jpg" alt="Definition-list in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="128"&gt;&lt;/p&gt;&lt;h4&gt;Deprecated Lists: &amp;lt;menu&amp;gt; &amp;amp; &amp;lt;dir&amp;gt;&lt;/h4&gt;&lt;p&gt;The &amp;lt;menu&amp;gt; and &amp;lt;dir&amp;gt; elements also, technically, qualify as “HTML lists”, but they are deprecated in XHTML, so I won’t discuss those in detail here.&lt;/p&gt;&lt;h4&gt;Lists in HTML5&lt;/h4&gt;&lt;p&gt;In HTML5, the unordered list has basically remained the same, although now it seems to be referred to simply as a “list”. The new &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt; element will be used to wrap a list that is used for navigation.&lt;/p&gt;&lt;p&gt;The &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; element has slightly changed, gaining two new attributes: &lt;code&gt;reversed&lt;/code&gt;, which is a Boolean that indicates if the list should be ascending or descending, and &lt;code&gt;start&lt;/code&gt;, which is an integer that declares the starting point of the ordered list items.&lt;/p&gt;&lt;p&gt;Also, the &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; elements have been added. Those new tags will have children that include &lt;code&gt;&amp;lt;dt&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;dd&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;&lt;p&gt;For further information on &lt;strong&gt;lists in HTML5&lt;/strong&gt;, see the &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/"&gt;HTML5 Draft Standard&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Browser Differences&lt;/h3&gt;&lt;p&gt;There are some notable differences across the most commonly-used browsers when certain styles are applied to ordered or unordered lists. Let’s take a look at some of these differences. Of course, this assumes there are no other styles associated with the elements, including those in a CSS reset.&lt;/p&gt;&lt;h4&gt;Adding “display: block” to List Items&lt;/h4&gt;&lt;p&gt;In Internet Explorer 8, Opera 9, Chrome, Firefox 2 &amp;amp; 3, and Safari, adding &lt;code&gt;display: block&lt;/code&gt; to the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; elements in an ordered or unordered list will make the bullets or numbers disappear.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/display-block.jpg" alt="Display-block in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="126"&gt;&lt;/p&gt;&lt;p&gt;In IE6 and IE7 the bullets and numbers will still be visible, even with &lt;code&gt;display: block&lt;/code&gt; applied to the list items.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/display-block-2.jpg" alt="Display-block-2 in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="126"&gt;&lt;/p&gt;&lt;h4&gt;Adding “float: left” to List Items&lt;/h4&gt;&lt;p&gt;In Internet Explorer 6 and 7, adding &lt;code&gt;float: left&lt;/code&gt; to the list items (with no other styles present) will align the list items horizontally and the list bullets (or list numbers) will disappear. In IE8 and all other browsers, the list items will align horizontally, but the list bullets (or list numbers) will still be visible.&lt;/p&gt;&lt;p&gt;Another factor to keep in mind when the list items are floated is that the list container (the &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; element) will collapse when it contains only floated elements. This occurs the same way in all browsers. Adding &lt;code&gt;overflow: hidden&lt;/code&gt; to the &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;ol&amp;gt;&lt;/code&gt; element is one way to resolve this issue.&lt;/p&gt;&lt;p&gt;To achieve virtually the same effect as &lt;code&gt;float: left&lt;/code&gt; in all browsers, &lt;strong&gt;the best solution is to use &lt;code&gt;display: inline&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;h4&gt;Ordered List Items That Have “Layout” in IE&lt;/h4&gt;&lt;p&gt;In IE6 &amp;amp; IE7, if the list items in an ordered list have “Layout”, the numbers in the ordered list will not increment, and will all show as “1″, as shown in the image below:&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/non-increment.jpg" alt="Non-increment in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="200"&gt;&lt;/p&gt;&lt;p&gt;The &lt;code&gt;hasLayout&lt;/code&gt; property cannot be set directly, but it can be changed if an element is given an explicit width or height, or the element is floated or absolutely positioned, among other things. For a thorough discussion of the &lt;code&gt;hasLayout&lt;/code&gt; property, &lt;a href="http://reference.sitepoint.com/css/haslayout"&gt;see this article&lt;/a&gt;.&lt;/p&gt;&lt;h4&gt;Padding &amp;amp; Margins in IE 6/7&lt;/h4&gt;&lt;p&gt;In most browsers, in order to remove the bullets or numbers from a list and push the list flush to the left, the left padding needs to be set to zero. But this has no effect in IE6 and IE7. Instead, the left margin needs to be set to zero for this to be achieved in those browsers.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/padding-left.jpg" alt="Padding-left in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="126"&gt;&lt;/p&gt;&lt;h4&gt;Achieving Consistent List-Styling in all Browsers&lt;/h4&gt;&lt;p&gt;To avoid the issues that arise in the handling of list styles in the different browsers, the best method is to &lt;strong&gt;use a CSS reset&lt;/strong&gt;. A CSS reset will set virtually all default browser settings to the bare minimum, and will allow you to work from a common ground in all browsers. There will still be differences after certain styles are applied, but they will not be as difficult to deal with after a reset is put in place.&lt;/p&gt;&lt;p&gt;Also, as mentioned earlier, it is best to completely avoid using the &lt;code&gt;list-style-image&lt;/code&gt; property, and to instead set a background on the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; elements. This will provide a cross-browser, easy-to-maintain solution for achieving custom bullets on an unordered list.&lt;/p&gt;&lt;h3&gt;Showcase of Trends, Examples, &amp;amp; Tutorials&lt;/h3&gt;&lt;p&gt;Now that we’ve reviewed the basics of HTML lists, as well as some browser inconsistencies, let’s look at a number of &lt;strong&gt;different examples and tutorials&lt;/strong&gt; that display practical examples and uses for HTML lists.&lt;/p&gt;&lt;h4&gt;Navigation Bars&lt;/h4&gt;&lt;p&gt;By far the most common use for the unordered list is the navigation bar, whether vertical or horizontal. Ever since table-based layouts became obsolete, the unordered list has been widely implemented as a basis for navigation elements for a number of reasons, listed below.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;An unordered list is a block-level element, and so does not need to be wrapped in an extra &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; to apply a background or other graphical enhancement&lt;/li&gt;&lt;li&gt;When styles are disabled, a styled list will degrade gracefully, ensuring the navigation items appear distinct from the rest of the page’s content&lt;/li&gt;&lt;li&gt;Although an unordered list might add more markup than just a plain list of &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tags, having the extra &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; elements allows the navigation bar to be graphically flexible&lt;/li&gt;&lt;li&gt;Navigation divided into lists and/or sub-lists allows users with assistive technology (such as screen readers) to easily skip entire navigation sections&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.jampmark.com/html+css-techniques/pure-css-fish-eye-menu.html"&gt;Pure CSS Fish Eye Menu&lt;/a&gt;&lt;br&gt;This vertical navigation menu that mimics the Apple “fisheye” effect on rollover is done with pure CSS and utilizes an unordered list to display the icons.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jampmark.com/html+css-techniques/pure-css-fish-eye-menu.html"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/fisheye.jpg" alt="Fisheye in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="150"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.fiftyfoureleven.com/weblog/web-development/css/doors-meet-sprites"&gt;Sliding Doors Meets CSS Sprites&lt;/a&gt;&lt;br&gt;An HTML list can also provide the foundation for a tabbed navigation bar using the famous &lt;a href="http://www.alistapart.com/articles/slidingdoors/"&gt;sliding doors&lt;/a&gt; technique, as demonstrated in this example.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.fiftyfoureleven.com/weblog/web-development/css/doors-meet-sprites"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/tabbed-nav.jpg" alt="Tabbed-nav in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="271"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gmarwaha.com/blog/2007/08/23/lavalamp-for-jquery-lovers/"&gt;LavaLamp for jQuery Lovers&lt;/a&gt;&lt;br&gt;A “Lava Lamp” hover animation effect on a list-based navigation bar, written for jQuery.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gmarwaha.com/blog/2007/08/23/lavalamp-for-jquery-lovers/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/lavalamp.jpg" alt="Lavalamp in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="208"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://webmuch.com/animated-navigation-bar-using-jquery/"&gt;Animated Navigation Bar Using jQuery&lt;/a&gt;&lt;br&gt;This tutorial on WebMunch uses list-based navigation to create an animated navigation bar powered by jQuery. The demo page displays four different variations of the animated effect.&lt;/p&gt;&lt;p&gt;&lt;a href="http://webmuch.com/animated-navigation-bar-using-jquery/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/animated-bar.jpg" alt="Animated-bar in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="400"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://westciv.com/style_master/blog/apples-navigation-bar-using-only-css"&gt;Apple’s Navigation bar using only CSS&lt;/a&gt;&lt;br&gt;This tutorial describes how to recreate Apple’s navigation bar, based on a list, with some CSS3 enhancements that degrade gracefully in IE and older browsers. The final result also includes an animated hover effect that works in Safari.&lt;/p&gt;&lt;p&gt;&lt;a href="http://westciv.com/style_master/blog/apples-navigation-bar-using-only-css"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/apple.jpg" alt="Apple in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="61"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Drop-Down Menus&lt;/h4&gt;&lt;p&gt;Older drop-down menus, like Brainjar’s &lt;a href="http://www.brainjar.com/dhtml/menubar/"&gt;Revenge of the Menu Bar&lt;/a&gt; used &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; elements to divide sections of anchor tags, implementing JavaScript to show and hide menus. Later, drop-down menus were developed that were more semantic, and more dependent on CSS.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.alistapart.com/articles/dropdowns"&gt;Suckerfish Dropdowns&lt;/a&gt;&lt;br&gt;The classic Suckerfish dropdowns by Patrick Griffiths and Dan Webb were one of the earliest drop-down (or fly-out) menus to be based on nested lists.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.alistapart.com/articles/dropdowns"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/suckerfish.jpg" alt="Suckerfish in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="317"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.stunicholls.com/menu/pro_dropdown_2.html"&gt;Professional Drop-Down&lt;/a&gt;&lt;br&gt;Stu Nicholls provides another list-based solution for drop-downs.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.stunicholls.com/menu/pro_dropdown_2.html"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/dropdowns.jpg" alt="Dropdowns in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="289"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.clarklab.net/blog/posts/animated-drop-down-menu-with-jquery/"&gt;Animated Drop Down Menu with jQuery&lt;/a&gt;&lt;br&gt;This tutorial demonstrates how to create a simple, single animated drop-down menu based on an unordered list, with jQuery.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.clarklab.net/blog/posts/animated-drop-down-menu-with-jquery/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/dropdown-animated.jpg" alt="Dropdown-animated in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="302"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jankoatwarpspeed.com/post/2009/06/20/Create-dropdown-menus-with-CSS-only.aspx"&gt;Create Dropdown Menus with CSS Only&lt;/a&gt;&lt;br&gt;This simple technique creates list-based drop-down menus without JavaScript.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jankoatwarpspeed.com/post/2009/06/20/Create-dropdown-menus-with-CSS-only.aspx"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/css-dropdowns.jpg" alt="Css-dropdowns in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="231"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.leigeber.com/2008/11/drop-down-menu/"&gt;JavaScript Dropdown Menu with Multi Levels&lt;/a&gt;&lt;br&gt;These multi-level, cross-browser, list-based drop-down menus include an animated slide and fade effect.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.leigeber.com/2008/11/drop-down-menu/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/multi-fade.jpg" alt="Multi-fade in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="278"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Photo Displays&lt;/h4&gt;&lt;p&gt;HTML lists serve as an effective way to &lt;strong&gt;display a list of photos&lt;/strong&gt;, for many of the same reasons that were mentioned above for navigation bars. Below are some examples of photo galleries and other photo-based widgets that are styled with HTML lists.&lt;/p&gt;&lt;p&gt;&lt;a href="http://sorgalla.com/jcarousel/"&gt;jCarousel&lt;/a&gt;&lt;br&gt;The jCarousel photo carousel jQuery plugin applies customizable jQuery functionality to an unordered list that can display the carousel in a number of different ways.&lt;/p&gt;&lt;p&gt;&lt;a href="http://sorgalla.com/jcarousel/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/jcarousel.jpg" alt="Jcarousel in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="305"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://medienfreunde.com/lab/innerfade/"&gt;InnerFade with JQuery&lt;/a&gt;&lt;br&gt;This plugin allows an unordered list of images to serve as the basis for a fading image rotator that displays one image at a time. The screen grab below displays two of the images in mid-transition.&lt;/p&gt;&lt;p&gt;&lt;a href="http://medienfreunde.com/lab/innerfade/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/innerfade.jpg" alt="Innerfade in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="355"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://joshuaink2006.johnoxton.co.uk/blog/206/css-photo-gallery-template"&gt;CSS Photo Gallery Template&lt;/a&gt;&lt;br&gt;This is a free photo gallery template that displays a caption on hover. This simple gallery uses an unordered list with &lt;strong&gt;floated list items&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://joshuaink2006.johnoxton.co.uk/blog/206/css-photo-gallery-template"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/gallery.jpg" alt="Gallery in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="349"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.maxdesign.com.au/presentation/definition/dl-image-gallery.htm"&gt;Definition Lists for Image Gallery&lt;/a&gt;&lt;br&gt;This demonstration on Max Design shows how to transform a definition list into an image gallery.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.maxdesign.com.au/presentation/definition/dl-image-gallery.htm"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/def-photos.jpg" alt="Def-photos in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="207"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Styling and Dividing Other Types of Content&lt;/h4&gt;&lt;p&gt;In addition to displaying images, lists also come in handy for display of content in sometimes atypical fashion, as demonstrated by the examples below.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.alistapart.com/articles/multicolumnlists/"&gt;Multi-Column Lists&lt;/a&gt;&lt;br&gt;A few years back, A List Apart demonstrated how to convert a single unordered list into a &lt;strong&gt;multi-columned display&lt;/strong&gt;, without the need to divide the items into multiple lists.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.alistapart.com/articles/multicolumnlists/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/multicolumn.jpg" alt="Multicolumn in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="256"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://css-tricks.com/style-a-list-with-one-pixel/"&gt;Style a List with One Pixel&lt;/a&gt;&lt;br&gt;Chris Coyier demonstrates a neat CSS trick — how to create a “depth-chart looking unordered list” using just a 1-pixel GIF.&lt;/p&gt;&lt;p&gt;&lt;a href="http://css-tricks.com/style-a-list-with-one-pixel/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/1pixel.jpg" alt="1pixel in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="298"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.andrewsellick.com/31/accessible-html-forms-using-definition-lists"&gt;Accessible HTML Forms using Definition Lists&lt;/a&gt;&lt;br&gt;Andrew Sellick steps through the styling of a lengthy form with the help of &lt;strong&gt;definition lists&lt;/strong&gt; to group sets of text boxes, radio buttons, and checkboxes.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.andrewsellick.com/31/accessible-html-forms-using-definition-lists"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/form-def.jpg" alt="Form-def in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="305"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.drunkenfist.com/304/2007/11/29/a-three-column-css-layout-using-just-an-unordered-list/"&gt;A Three Column CSS Layout Using Just an Unordered List&lt;/a&gt;&lt;br&gt;Rob Larsen of DrunkenFist.com demonstrates how to create a &lt;strong&gt;3-column page layout&lt;/strong&gt; using an unordered list in place of the usual &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.drunkenfist.com/304/2007/11/29/a-three-column-css-layout-using-just-an-unordered-list/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/ul-layout.jpg" alt="Ul-layout in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="247"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gayadesign.com/diy/animated-tabbed-content-with-jquery/"&gt;Animated Tabbed Content with jQuery&lt;/a&gt;&lt;br&gt;This tutorial on Gaya Design demonstrates how to create an animated tabbed content box with jQuery. The content is structured using unordered lists.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.gayadesign.com/diy/animated-tabbed-content-with-jquery/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/tabbed-content.jpg" alt="Tabbed-content in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="436"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.queness.com/post/741/a-simple-and-beautiful-jquery-accordion-tutorial"&gt;A Simple and Beautiful jQuery Accordion Tutorial&lt;/a&gt;&lt;br&gt;This is a simple tutorial that uses nested unordered lists as a basis for a jQuery animated accordion menu.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.queness.com/post/741/a-simple-and-beautiful-jquery-accordion-tutorial"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/accordion.jpg" alt="Accordion in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="244"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Code Highlighters&lt;/h4&gt;&lt;p&gt;Many blogs and tutorial sites include JavaScript-driven code highlighters that convert &lt;code&gt;&amp;lt;pre&amp;gt;&lt;/code&gt; elements into ordered lists, as shown in the screen capture below. One such code highlighter is &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;Alex Gorbatchev’s SyntaxHighlighter&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/code-hilite.jpg" alt="Code-hilite in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="344"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Blog Comments&lt;/h4&gt;&lt;p&gt;Blog comments, including those on WordPress-driven sites, are structured with ordered lists, providing very flexible options for styling, and laying a foundation for nested comments. Nested, or “threaded” comments are now built into WordPress, as demonstrated below on &lt;a href="http://www.noupe.com/spotlight/noupe-has-a-new-owner-smashing-magazine.html"&gt;Noupe&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.noupe.com/spotlight/noupe-has-a-new-owner-smashing-magazine.html"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/nested-comments.jpg" alt="Nested-comments in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="452"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Fancy Styles and Techniques with Lists&lt;/h4&gt;&lt;p&gt;&lt;a href="http://www.wil-linssen.com/jquery-sortable-lists-with-drag-drop-handle/"&gt;jQuery Sortable Lists With Drag Drop Handle&lt;/a&gt;&lt;br&gt;Will Linssen demonstrates, with jQuery, how to create an ordered or unordered list that allows the user to manually sort the list items.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.wil-linssen.com/jquery-sortable-lists-with-drag-drop-handle/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/drag-drop.jpg" alt="Drag-drop in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="285"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sohtanaka.com/web-design/css-ordered-list-enhancement-tutorial/"&gt;Sexy Ordered Lists with CSS&lt;/a&gt;&lt;br&gt;Soh Tanaka shows users how to add some fancy styling to an ordered list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sohtanaka.com/web-design/css-ordered-list-enhancement-tutorial/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/soh-lists.jpg" alt="Soh-lists in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="472"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://veerle.duoh.com/"&gt;Veerle’s Block Hover Effect on List Items&lt;/a&gt;&lt;br&gt;In the “Approved” section in the footer of her home page, Veerle Pieters implements a cross-browser block-hover effect on an unordered list. Each list item contains a number of separate elements, but the hover effect works on the entire list item, and even works in IE6. The same effect is discussed in tutorials on &lt;a href="http://www.smileycat.com/miaow/archives/000230.php"&gt;Smiley Cat&lt;/a&gt; and &lt;a href="http://randsco.com/index.php/2009/05/21/beautify_a_resource_list"&gt;randsco.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://veerle.duoh.com/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/veerle-list.jpg" alt="Veerle-list in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="472"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cssplay.co.uk/menu/barchart.html"&gt;A Definition List Bar Chart&lt;/a&gt;&lt;br&gt;The ever-creative Stu Nicholls shows us how to display a bar chart (with very old browser stats!) with a styled definition list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cssplay.co.uk/menu/barchart.html"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/bar-chart.jpg" alt="Bar-chart in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="201"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.webdesignerwall.com/tutorials/jquery-sequential-list/"&gt;jQuery Sequential List&lt;/a&gt;&lt;br&gt;This tutorial on Web Designer Wall will show you how to use jQuery to add sequential CSS classes to list items to create a graphical list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.webdesignerwall.com/tutorials/jquery-sequential-list/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/sequential.jpg" alt="Sequential in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="437"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.stevenyork.com/tutorial/creating_accessible_tag_cloud_in_php_css_mysql"&gt;Creating an Accessible Tag Cloud in PHP and CSS&lt;/a&gt;&lt;br&gt;This tutorial describes how to create an accessible, standards compliant tag cloud with simple code. The resulting HTML output is a simple unordered list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.stevenyork.com/tutorial/creating_accessible_tag_cloud_in_php_css_mysql"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/tagcloud.jpg" alt="Tagcloud in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="143"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://veerle.duoh.com/blog/comments/simple_scalable_css_based_breadcrumbs"&gt;Simple Scalable CSS Based Breadcrumbs&lt;/a&gt;&lt;br&gt;Veerle Pieters describes how to create a breadcrumb navigation section using an unordered list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://veerle.duoh.com/blog/comments/simple_scalable_css_based_breadcrumbs"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/breadcrumbs.jpg" alt="Breadcrumbs in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="295"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://codylindley.com/CSS/325/css-step-menu"&gt;CSS Step Menu&lt;/a&gt;&lt;br&gt;A demonstration of a “step menu” that’s based on unordered lists.&lt;/p&gt;&lt;p&gt;&lt;a href="http://codylindley.com/CSS/325/css-step-menu"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/stepmenu.jpg" alt="Stepmenu in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="442"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cssbake.com/cookbook/overlap-that-menu/"&gt;Overlap That Menu!&lt;/a&gt;&lt;br&gt;A tutorial that describes how to create overlapping menu items using a styled unordered list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cssbake.com/cookbook/overlap-that-menu/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/overlap.jpg" alt="Overlap in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="290"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.thewojogroup.com/2008/12/css-stacked-bar-graphs/"&gt;CSS Stacked Bar Graphs&lt;/a&gt;&lt;br&gt;A fancy stacked bar graph in CSS that uses an unordered list and a definition list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.thewojogroup.com/2008/12/css-stacked-bar-graphs/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/bargraph.jpg" alt="Bargraph in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="426"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dynamicdrive.com/style/csslibrary/item/nested_side_bar_menu/"&gt;Nested Side Bar Menu&lt;/a&gt;&lt;br&gt;Using the same principle as drop-down menus, this demonstration shows a cross-browser vertical menu with fly-outs, based on nested unordered lists.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dynamicdrive.com/style/csslibrary/item/nested_side_bar_menu/"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/flyouts.jpg" alt="Flyouts in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="231"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.ogilvydurham.com/allTags.php"&gt;OMG Durham’s Tag Popularity Graph&lt;/a&gt;&lt;br&gt;OMG Durham’s website displays popular tags using a bar graph that is based on an unordered list.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.ogilvydurham.com/allTags.php"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css-li-styling-techniques/tag-graph.jpg" alt="Tag-graph in Styling HTML Lists with CSS: Techniques and Resources" width="500" height="141"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;p&gt;A beautiful, CSS-styled, cross-browser HTML list has the power to resolve thousands of potential layout or design challenges. Although dozens more uses and techniques could be discussed in this article, the above material should be enough to give a thorough overview of HTML lists, demonstrating how powerful and flexible they are in the hands of an experienced coder.&lt;/p&gt;&lt;h3&gt;Further Resources&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://css.maxdesign.com.au/listamatic/"&gt;The Listamatic&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.alistapart.com/articles/taminglists/"&gt;CSS Design: Taming Lists&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.w3schools.com/CSS/css_list.asp"&gt;CSS Lists on W3Schools&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.maxdesign.com.au/presentation/definition/"&gt;Definition lists – misused or misunderstood?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.noupe.com/css/css-styled-lists-20-demos-tutorials-and-best-of.html"&gt;CSS-Styled Lists: 20+ Demos, Tutorials and Best Practices&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://reference.sitepoint.com/html/elements-list"&gt;List Elements on Sitepoint’s HTML Reference&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr&gt;&lt;p&gt;&lt;small&gt;© Louis Lazaris for &lt;a href="http://www.smashingmagazine.com"&gt;Smashing Magazine&lt;/a&gt;, 2009. | &lt;a href="http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/#comments"&gt;42 comments&lt;/a&gt; | &lt;a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/&amp;amp;title=Styling%20HTML%20Lists%20with%20CSS:%20Techniques%20and%20Resources"&gt;Add to del.icio.us&lt;/a&gt; | &lt;a title="Bookmark in Digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/"&gt;Digg this&lt;/a&gt; | &lt;a title="Stumble on StumbleUpon" href="http://www.stumbleupon.com/submit?url=http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/"&gt;Stumble on StumbleUpon!&lt;/a&gt; | &lt;a title="Tweet us!" href="http://twitter.com/home?status=@tweetmeme%20@smashingmag%20Reading%20&amp;#39;Styling%20HTML%20Lists%20with%20CSS:%20Techniques%20and%20Resources&amp;#39;%20http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/"&gt;Tweet it!&lt;/a&gt; | &lt;a title="Bookmark in Reddit" href="http://reddit.com/submit?url=http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/"&gt;Submit to Reddit&lt;/a&gt; | &lt;a href="http://forum.smashingmagazine.com/"&gt;Forum Smashing Magazine&lt;/a&gt;&lt;br&gt; Post tags: &lt;a href="http://www.smashingmagazine.com/tag/css/" rel="tag"&gt;CSS&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/lists/" rel="tag"&gt;lists&lt;/a&gt;&lt;br&gt; &lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/W7PGYMg9taPDFJorXBqG731vnFw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W7PGYMg9taPDFJorXBqG731vnFw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/W7PGYMg9taPDFJorXBqG731vnFw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/W7PGYMg9taPDFJorXBqG731vnFw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/kHmWtKTTONY" height="1" width="1"/&gt;</content><author><name>Louis Lazaris</name></author><gr:likingUser>05410971760771127748</gr:likingUser><gr:likingUser>10309887133559368348</gr:likingUser><gr:likingUser>18340831981034978391</gr:likingUser><gr:likingUser>01280645533986514379</gr:likingUser><gr:likingUser>12523659904282573095</gr:likingUser><gr:likingUser>15657541769188865154</gr:likingUser><gr:likingUser>04677412205948061569</gr:likingUser><gr:likingUser>01008327041243706751</gr:likingUser><gr:likingUser>11041998187191690759</gr:likingUser><gr:likingUser>02508319771731836425</gr:likingUser><gr:likingUser>08921481233871200522</gr:likingUser><gr:likingUser>11853729482025913423</gr:likingUser><gr:likingUser>01631561733662965249</gr:likingUser><gr:likingUser>17552883345445111028</gr:likingUser><gr:likingUser>05344333267520582827</gr:likingUser><gr:likingUser>07481088091827153485</gr:likingUser><gr:likingUser>03244298266272112553</gr:likingUser><gr:likingUser>17959305948508351143</gr:likingUser><gr:likingUser>09683643311329561622</gr:likingUser><gr:likingUser>12161298058133441395</gr:likingUser><gr:likingUser>16004446162306715273</gr:likingUser><gr:likingUser>05841958425042691603</gr:likingUser><gr:likingUser>12515618720065893071</gr:likingUser><gr:likingUser>09959093399740063540</gr:likingUser><gr:likingUser>14862241603992271880</gr:likingUser><gr:likingUser>10520603126709831527</gr:likingUser><gr:likingUser>15527489447681890380</gr:likingUser><gr:likingUser>03254009948519721225</gr:likingUser><gr:likingUser>09423659052361168552</gr:likingUser><gr:likingUser>02367176446971066182</gr:likingUser><gr:likingUser>15063719448687610248</gr:likingUser><gr:likingUser>14027905679247980859</gr:likingUser><gr:likingUser>03563146548079814412</gr:likingUser><gr:likingUser>01335594325742914845</gr:likingUser><gr:likingUser>00228928207151223247</gr:likingUser><gr:likingUser>09397332265272336789</gr:likingUser><gr:likingUser>15138888323913763439</gr:likingUser><gr:likingUser>06268939102890738829</gr:likingUser><gr:likingUser>10202755676046173309</gr:likingUser><gr:likingUser>10844281771375229258</gr:likingUser><gr:likingUser>07163266829853871309</gr:likingUser><gr:likingUser>13385794181297467073</gr:likingUser><gr:likingUser>13929284763080690630</gr:likingUser><gr:likingUser>17109652482333750556</gr:likingUser><gr:likingUser>08025245888479311272</gr:likingUser><gr:likingUser>12042546771779652421</gr:likingUser><gr:likingUser>17008179683021410600</gr:likingUser><gr:likingUser>09830543404928922394</gr:likingUser><gr:likingUser>09624810585073217839</gr:likingUser><gr:likingUser>15753597550308712879</gr:likingUser><gr:likingUser>15611997034476226516</gr:likingUser><gr:likingUser>11182080104051038982</gr:likingUser><gr:likingUser>04062152114029948924</gr:likingUser><gr:likingUser>08024048688928645786</gr:likingUser><gr:likingUser>13623649879367525508</gr:likingUser><gr:likingUser>18281847282686570686</gr:likingUser><gr:likingUser>01952333483554720523</gr:likingUser><gr:likingUser>04459666499087252710</gr:likingUser><gr:likingUser>12621684809972239910</gr:likingUser><gr:likingUser>08089636081120913548</gr:likingUser><gr:likingUser>06346602631825418504</gr:likingUser><gr:likingUser>07964064472159271834</gr:likingUser><gr:likingUser>03712775109755796805</gr:likingUser><gr:likingUser>03825166088563509996</gr:likingUser><gr:likingUser>14938523793380798733</gr:likingUser><gr:likingUser>16733198491756542251</gr:likingUser><gr:likingUser>07871283238073091975</gr:likingUser><gr:likingUser>03655759070555913155</gr:likingUser><gr:likingUser>11026718448508286694</gr:likingUser><gr:likingUser>10704438643790646242</gr:likingUser><gr:likingUser>14458209572174770663</gr:likingUser><gr:likingUser>09542211465219411072</gr:likingUser><gr:likingUser>02794597168816458866</gr:likingUser><gr:likingUser>16802677063922186043</gr:likingUser><gr:likingUser>04769505799716919168</gr:likingUser><gr:likingUser>00857928615653907952</gr:likingUser><gr:likingUser>17564125331282558719</gr:likingUser><gr:likingUser>08310963782680324154</gr:likingUser><gr:likingUser>05181087133690328735</gr:likingUser><gr:likingUser>02332850848772624146</gr:likingUser><gr:likingUser>09733062812878878443</gr:likingUser><gr:likingUser>09919933058181017320</gr:likingUser><gr:likingUser>13826747417203427165</gr:likingUser><gr:likingUser>17780803618480896356</gr:likingUser><gr:likingUser>02117660568276976266</gr:likingUser><gr:likingUser>15785568256576659645</gr:likingUser><gr:likingUser>05073241007714466011</gr:likingUser><gr:likingUser>08557049496330311431</gr:likingUser><gr:likingUser>16069252667413438386</gr:likingUser><gr:likingUser>12339601264128384251</gr:likingUser><gr:likingUser>02387662866172484980</gr:likingUser><gr:likingUser>01859668918712734588</gr:likingUser><gr:likingUser>17311887303618556006</gr:likingUser><gr:likingUser>08585745394794638164</gr:likingUser><gr:likingUser>12883247801568252000</gr:likingUser><gr:likingUser>05997917902394839336</gr:likingUser><gr:likingUser>09862655810259140602</gr:likingUser><gr:likingUser>16325284056021643050</gr:likingUser><gr:likingUser>04692621266913065286</gr:likingUser><gr:likingUser>05466495752522755818</gr:likingUser><source gr:stream-id="feed/http://rss1.smashingmagazine.com/feed/"><id>tag:google.com,2005:reader/feed/http://rss1.smashingmagazine.com/feed/</id><title type="html">Smashing Magazine Feed</title><link rel="alternate" href="http://www.smashingmagazine.com/" type="text/html" /></source><feedburner:origLink>http://www.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1260199092445"><id gr:original-id="http://www.alsacreations.com/tuto/lire/910-creer-des-ombrages-ombres-css-box-shadow-text-shadow.html">tag:google.com,2005:reader/item/c51a28c7de831097</id><category term="CSS" /><title type="html">Les ombrages en CSS3</title><published>2009-12-07T13:37:37Z</published><updated>2009-12-07T13:37:37Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/51TkWA6Dd-k/910-creer-des-ombrages-ombres-css-box-shadow-text-shadow.html" type="text/html" /><author><name>Raphael</name></author><gr:likingUser>06587647553578982786</gr:likingUser><gr:likingUser>17076889662985981819</gr:likingUser><gr:likingUser>10860736180582349694</gr:likingUser><gr:likingUser>17526587290271802812</gr:likingUser><gr:likingUser>13681798074133404401</gr:likingUser><gr:likingUser>02457067948473841730</gr:likingUser><gr:likingUser>13035524212422123979</gr:likingUser><gr:likingUser>11169077613327046940</gr:likingUser><gr:likingUser>07571323106285782188</gr:likingUser><source gr:stream-id="feed/http://blog.alsacreations.com/rss.php"><id>tag:google.com,2005:reader/feed/http://blog.alsacreations.com/rss.php</id><title type="html">Alsacreations.com - Actualités</title><link rel="alternate" href="http://www.alsacreations.com/rss/actualites.xml" type="text/html" /></source><content type="html">&lt;p&gt;Grâce à des propriétés telles que &lt;code&gt;box-shadow&lt;/code&gt;, &lt;code&gt;text-shadow&lt;/code&gt; et &lt;code&gt;border-colors&lt;/code&gt;, les feuilles de style offrent la possibilité de créer des ombrages sur les différents éléments de votre page sans nécessiter d'image décorative et de découpes intempestives.&lt;br&gt;Tout n'est pas rose puisque certains navigateurs à la traîne ne reconnaissent pas encore ces différentes propriétés et nécessitent des adaptations personnalisées. Faisons le tour du propriétaire...&lt;/p&gt;

&lt;h3&gt;Box-shadow&lt;/h3&gt;

&lt;p&gt;La propriété CSS &lt;code&gt;&lt;strong&gt;box-shadow&lt;/strong&gt;&lt;/code&gt; a été incluse dans le &lt;a hreflang="en" href="http://www.w3.org/TR/2002/WD-css3-border-20021107/#the-box-shadow"&gt;module "borders" de CSS3&lt;/a&gt; et &lt;strong&gt;permet de générer une ombre portée sur n'importe quel élément HTML.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Parmi les différentes valeurs utilisables, il est possible d'indiquer le décalage vertical et horizontal ainsi que la force du dégradé. Sans oublier la couleur, bien-entendu. La propriété s'applique sur la boîte de l'élément, et non sur sa bordure. &lt;strong&gt;L'ombrage n'affecte pas la taille de la boîte de l'élément.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En voici une illustration (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/box-shadow.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/box-shadow1.jpg" alt="Illustration de box-shadow"&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
img {
  box-shadow: 8px 8px 0 #aaa; 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Syntaxe&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;La première valeur indique le décalage horizontal vers la droite (ici 8px)&lt;/li&gt;
&lt;li&gt;le deuxième correspond au décalage vertical vers le bas (ici 8px)&lt;/li&gt;
&lt;li&gt;le chiffre suivant indique la force du dégradé (ici 0)&lt;/li&gt;
&lt;li&gt;et enfin, la couleur (ici #aaa)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
	&lt;strong&gt;Compatibilité et utilisation concrète&lt;/strong&gt;&lt;br&gt;A l'heure où ce tutoriel est écrit, seuls les navigateurs basés sur les moteurs Gecko (Mozilla Firefox 3.1+) et sur Webkit (Safari, Chrome) reconnaissent la propriété &lt;code&gt;box-shadow&lt;/code&gt;. En pratique, la propriété doit être préfixée par &lt;code&gt;-moz-&lt;/code&gt; pour Gecko ou &lt;code&gt;-webkit-&lt;/code&gt; pour Webkit pour fonctionner sur ces navigateurs. &lt;code&gt;box-shadow&lt;/code&gt; devient donc &lt;code&gt;-moz-box-shadow&lt;/code&gt; et &lt;code&gt;-webkit-box-shadow&lt;/code&gt;.&lt;br&gt;
Par souci de clarté, l'article se passe de ces préfixes. Les exemples construits utilisent naturellement ces préfixes pour fonctionner et anticiper une implémentation complète sur tous les navigateurs dans le futur.
&lt;/p&gt;

&lt;p&gt;Voici une illustration d'ombre portée dégradée (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/box-shadow.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/box-shadow2.jpg" alt="Illustration de box-shadow"&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
img {
  box-shadow: 8px 8px 12px #aaa;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Et voici enfin une variante sous forme de "halo" dégradé (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/box-shadow.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/box-shadow3.jpg" alt="Illustration de box-shadow"&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
img {
  box-shadow: 1px 1px 12px #555;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Adaptation pour Internet Explorer&lt;/h4&gt;

&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/tuto/deco/warning.gif" alt=""&gt; Internet Explorer, version IE8 incluse, ne reconnaît pas la propriété &lt;code&gt;box-shadow&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Cependant, comme &lt;a href="http://www.alsacreations.com/tuto/lire/909-CSS-transparence-couleur-rgba.html"&gt;pour la transparence&lt;/a&gt; de couleur, il existe une fonctionnalité de filtre propriétaire Microsoft qui permet d'obtenir un résultat similaire. Il s'agit du filtre &lt;code&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms533086%28VS.85%29.aspx"&gt;Shadow&lt;/a&gt;&lt;/code&gt; (un cousin du filtre &lt;code&gt;DropShadow&lt;/code&gt;), que nous allons employer sur ce navigateur.&lt;/p&gt;

&lt;p&gt;Il suffit concrètement à appliquer ce filtre à l'élément en y indiquant une couleur, la direction (en degré) et la force du dégradé.&lt;/p&gt;

&lt;p&gt;Voici ce que donne une ombre portée "classique" à l'aide du filtre &lt;code&gt;Shadow&lt;/code&gt; sur Internet Explorer (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/box-shadow-hack.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/box-shadow4.jpg" alt="filtre Shadow sur IE"&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
img {
  filter:progid:DXImageTransform.Microsoft.Shadow(color='#aaaaaa', Direction=135, Strength=12);
  zoom: 1;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Bien entendu, pour éviter de gêner les bons élèves, nous allons nous appliquer à administrer cette bidouille uniquement sur Internet Explorer à l'aide d'un &lt;a href="http://www.alsacreations.com/astuce/lire/48-commentaires-conditionnels.html"&gt;commentaire conditionnel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Au final, les styles CSS devraient ressembler à ceci :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;   
    .ombrage {
    border: 5px solid #fff;
    -moz-box-shadow: 8px 8px 12px #aaa; 
    -webkit-box-shadow: 8px 8px 12px #aaa; 
    box-shadow: 8px 8px 12px #555; 
    } 
  &amp;amp;lt;/style&amp;amp;gt;
    
&amp;lt;!--[if lte IE 8]&amp;gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
  .ombrage {
    filter:progid:DXImageTransform.Microsoft.Shadow(color=&amp;#39;#aaaaaa&amp;#39;, Direction=135, Strength=12);
    zoom: 1;
  } 
  &amp;lt;/style&amp;gt;
&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Après application de cette adaptation pour Internet Explorer, &lt;strong&gt;seul le navigateur Opera n'affichera pas d'ombre sur votre élément.&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;Outil WYSIWYG&lt;/h4&gt;
&lt;p&gt;Pour vous familiariser avec le concept de &lt;code&gt;box-shadow&lt;/code&gt; et pouvoir jouer en direct avec cette propriété et ses effets, sachez qu'il existe &lt;a href="http://www.westciv.com/tools/boxshadows/index.html" hreflang="en"&gt;un outil &lt;abbr title="What You See Is What You Get" lang="en"&gt;WYSIWYG&lt;/abbr&gt; publié chez Westciv.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Text-shadow&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;&lt;a href="http://www.yoyodesign.org/doc/w3c/css2/text.html#text-shadow-props"&gt;text-shadow&lt;/a&gt;&lt;/code&gt; est une propriété CSS2 permettant de &lt;strong&gt;produire une ombre portée sur le texte de contenu sur lequel elle est appliquée.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Il est possible de spécifier les décalages de l'ombrage, la couleur et sa zone de flou. Ces effets s'appliquent dans l'ordre spécifié et peuvent ainsi se recouvrir, mais ceux-ci ne recouvriront jamais le texte lui-même. &lt;strong&gt;L'ombrage n'affecte pas la taille de la boîte de texte.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Voici une illustration de cette propriété &lt;code&gt;text-shadow&lt;/code&gt; en action (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/text-shadow.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/text-shadow1.jpg" alt="Illustration de text-shadow"&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
h1 {
  text-shadow: 0px 0px 9px #777;
  color: #fff;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Compatibilité et syntaxe&lt;/h4&gt;

&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/tuto/deco/warning.gif" alt=""&gt; A l'instar de &lt;code&gt;box-shadow&lt;/code&gt;, cette propriété n'est pas reconnue par Internet Explorer (version 8 comprise). Par contre, Opera 9.5+ l'implémente correctement.&lt;/p&gt;

&lt;p&gt;Notez également que puisqu'il s'agit d'une propriété CSS2 et non CSS3, il n'y a pas lieu de lui affecter un préfixe (-moz-, -webkit-, ...). La propriété demeure &lt;code&gt;text-shadow&lt;/code&gt; quel que soit le navigateur.&lt;/p&gt;

&lt;h4&gt;Adaptation pour Internet Explorer&lt;/h4&gt;

&lt;p&gt;Là encore, nous allons devoir ruser en appliquant le filtre &lt;code&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms533086%28VS.85%29.aspx" hreflang="en"&gt;Shadow&lt;/a&gt;&lt;/code&gt; à nos éléments, de la même manière que nous l'avons fait précédemment pour adapter la propriété &lt;code&gt;box-shadow&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Le résultat sur Internet Explorer est malheureusement moins excitant que sur les autres navigateurs (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/text-shadow-hack.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/text-shadow2.jpg" alt="Illustration de shadow sur IE"&gt;&lt;/p&gt;

&lt;p&gt;Au final, les styles CSS devraient ressembler à ceci :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
.ombrage {
  text-shadow: 2px 2px 4px #999;
} 
&amp;lt;/style&amp;gt;
&amp;lt;!--[if lte IE 8]&amp;gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
.ombrage {
  filter:progid:DXImageTransform.Microsoft.Shadow(color=&amp;#39;#999999&amp;#39;, Direction=135, Strength=4);
  zoom: 1;
} 
&amp;lt;/style&amp;gt;
&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Outil WYSIWYG&lt;/h4&gt;
&lt;p&gt;Pour vous familiariser avec le concept de &lt;code&gt;text-shadow&lt;/code&gt; il existe aussi &lt;a href="http://www.westciv.com/tools/shadows/index.html" hreflang="en"&gt;un outil &lt;abbr title="What You See Is What You Get" lang="en"&gt;WYSIWYG&lt;/abbr&gt; publié chez Westciv.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Border-colors&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;border-colors&lt;/code&gt; est une propriété uniquement reconnue par Mozilla Firefox 3.0+ et qui permet de déclarer plusieurs valeurs de couleurs à appliquer sur la bordure d'un élément.&lt;/p&gt;

&lt;p&gt;En voici une illustration (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/ombrage/border-gradient.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/border-gradient.jpg" alt="Illustration de border-gradient"&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;
.gradient {
      -moz-border-bottom-colors:#897048 #917953 #a18a66 #b6a488 #c5b59b #d4c5ae #e2d6c4 #eae1d2;
      -moz-border-top-colors:  #897048 #917953 #a18a66 #b6a488 #c5b59b #d4c5ae #e2d6c4 #eae1d2;
      -moz-border-left-colors: #897048 #917953 #a18a66 #b6a488 #c5b59b #d4c5ae #e2d6c4 #eae1d2;
      -moz-border-right-colors:#897048 #917953 #a18a66 #b6a488 #c5b59b #d4c5ae #e2d6c4 #eae1d2;
      }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Puisque cette propriété n'est pas vraiment répandue, nous n'allons pas entrer dans les détails, mais sachez que vous pouvez l'étudier sur &lt;a href="http://www.zenelements.com/blog/css3-border-color-colour/" hreflang="en"&gt;le site ZenElements.com&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Associées aux &lt;a href="http://www.alsacreations.com/tuto/lire/891-coins-arrondis-css-sans-images.html"&gt;coins arrondis&lt;/a&gt; et aux &lt;a href="http://www.alsacreations.com/tuto/lire/909-CSS-transparence-couleur-rgba.html"&gt;transparences de couleurs&lt;/a&gt;, les propriétés d'ombrage sont encore sous-exploitées... Et pour cause : quelques navigateurs importants tels qu'Internet Explorer ou Opéra ne les implémentent pas encore.&lt;/p&gt;
&lt;p&gt;Cela signifie qu&amp;#39;en production, il est nécessaire de prendre quelques précautions d&amp;#39;usage et de se poser des questions préalables : puis-je m&amp;#39;offrir une version dégradée (&amp;quot;graceful degradation&amp;quot;) sur ces navigateurs à la traîne, voire tout simplement les ignorer ? Quel est mon public et ses attentes ? Combien de temps puis-je passer à bidouiller des équivalences sur IE ?... La réponse est uniquement entre vos mains.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kXfBrM420YckXU2r76TW7_0GZIk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kXfBrM420YckXU2r76TW7_0GZIk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kXfBrM420YckXU2r76TW7_0GZIk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kXfBrM420YckXU2r76TW7_0GZIk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/51TkWA6Dd-k" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.alsacreations.com/tuto/lire/910-creer-des-ombrages-ombres-css-box-shadow-text-shadow.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1259784457106"><id gr:original-id="http://www.alsacreations.com/tuto/lire/909-CSS-transparence-couleur-rgba.html">tag:google.com,2005:reader/item/4a072676acdc6452</id><category term="CSS" /><title type="html">La transparence de couleur avec RGBa en CSS3</title><published>2009-12-02T17:55:44Z</published><updated>2009-12-02T17:55:44Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/9FqC5QHZuq8/909-CSS-transparence-couleur-rgba.html" type="text/html" /><author><name>Raphael</name></author><gr:likingUser>01736779210878158424</gr:likingUser><gr:likingUser>04058372316706064740</gr:likingUser><gr:likingUser>07488637500454804498</gr:likingUser><gr:likingUser>10860736180582349694</gr:likingUser><gr:likingUser>08076285683288605280</gr:likingUser><gr:likingUser>02387662866172484980</gr:likingUser><gr:likingUser>17526587290271802812</gr:likingUser><gr:likingUser>11362461078962698517</gr:likingUser><gr:likingUser>04864590751949057641</gr:likingUser><source gr:stream-id="feed/http://blog.alsacreations.com/rss.php"><id>tag:google.com,2005:reader/feed/http://blog.alsacreations.com/rss.php</id><title type="html">Alsacreations.com - Actualités</title><link rel="alternate" href="http://www.alsacreations.com/rss/actualites.xml" type="text/html" /></source><content type="html">&lt;p&gt;Le module de couleurs de CSS3 &lt;strong&gt;introduit la notion de transparence dans les valeurs associées à une couleur, l'écriture &lt;a href="http://www.w3.org/TR/css3-color/#rgba-color" hreflang="en"&gt;&lt;code&gt;&lt;abbr lang="en" title="Red Green Blue Alpha"&gt;RGBa&lt;/abbr&gt;&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;Cette composante de la couleur permet de jouer sur les effets d'opacité entre les différentes couches d'éléments HTML.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/illust-rgba.png" alt="La transparence"&gt;&lt;/p&gt;

&lt;p&gt;Contrairement à ce que l'on peut croire, le principe de la &lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/transparence/rgba.html"&gt;transparence &lt;code&gt;RGBa&lt;/code&gt;&lt;/a&gt; est radicalement différent de la &lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/transparence/opacity.html"&gt;propriété &lt;code&gt;opacity&lt;/code&gt;&lt;/a&gt; (également CSS3 mais assez ancienne déjà) : cette dernière est une &lt;em&gt;propriété&lt;/em&gt; qui s'applique à l'élément dans son intégralité (ainsi qu'à tous ses descendants) tandis que &lt;code&gt;RGBa&lt;/code&gt; est une &lt;em&gt;valeur&lt;/em&gt; qui s'applique à une propriété de l'élément sélectionné uniquement.&lt;/p&gt;

&lt;p&gt;De ce fait, &lt;code&gt;RGBa&lt;/code&gt; est susceptible de s'appliquer à toutes les propriétés dont la valeur peut être une couleur : &lt;code&gt;background-color&lt;/code&gt;, &lt;code&gt;color&lt;/code&gt;, &lt;code&gt;border-color&lt;/code&gt;, &lt;a href="http://www.zurb.com/article/266/super-awesome-buttons-with-css3-and-rgba" hreflang="en"&gt;&lt;code&gt;box-shadow&lt;/code&gt;&lt;/a&gt;, &lt;code&gt;text-shadow&lt;/code&gt;, etc. &lt;/p&gt;

&lt;p&gt;Voici une illustration du principe de &lt;strong&gt;transparence de la couche Alpha (RGBa)&lt;/strong&gt; (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/transparence/rgba.html"&gt;Voir le résultat (RGBa) sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/rgba.png" alt="Illustration de Transparence RGBa"&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
div {
  background-color: rgba(0, 0, 255, 0.5);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et voici une illustration du principe &lt;strong&gt;d'opacité (opacity)&lt;/strong&gt; sur un élément (&lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/transparence/opacity.html"&gt;Voir le résultat (Opacity) sur votre navigateur&lt;/a&gt;) :&lt;br&gt;&lt;img src="http://www.alsacreations.com/xmedia/doc/full/opacity.png" alt="Ullustration de l&amp;#39;opacité en CSS"&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
div {
  opacity: 0.5;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Principe de la notation RGBa&lt;/h3&gt;

&lt;p&gt;La notation RGBa obéit aux mêmes règles de fonctionnement que la notation classique RGB, mis à part qu&amp;#39;une composante est ajoutée à la valeur : &lt;code&gt;rgb(0,0,0)&lt;/code&gt; devient donc &lt;code&gt;rgba(0,0,0,0)&lt;/code&gt;. La dernière valeur indiquant le degré d'opacité entre 0 et 1.&lt;/p&gt;

&lt;p&gt;Illustrons cette notation sur une structure HTML, l&amp;#39;objectif étant d&amp;#39;appliquer une transparence de 50% sur la couleur d&amp;#39;arrière-plan de l&amp;#39;élément &amp;lt;div&amp;gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;div&amp;gt;
  &amp;lt;h1&amp;gt;Joli titre&amp;lt;/h1&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Voici les styles CSS permettant d'appliquer cette transparence :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
div {
  background-color: rgba(0, 0, 255, 0.5); /* un arrière plan bleu à 50% de transparence */
}
div h1 {
  color: rgb(255, 200, 0); /* une couleur de texte jaune-orange */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pour s'assurer qu'il y ait une alternative pour les mauvais élèves ou les navigateurs plus anciens, il est possible de commencer par déclarer une couleur de fond  solide à l'aide de l'écriture classique &lt;code&gt;RGB&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les anciens navigateurs, pour la plupart, ne reconnaîtront pas la seconde valeur et se contenteront de la première déclaration :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
div {
  &lt;b&gt;background-color: rgb(0, 0, 255);&lt;/b&gt;
  background-color: rgba(0, 0, 255, 0.5);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;img src="http://www.alsacreations.com/xmedia/tuto/deco/web.png" alt=""&gt; &lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/transparence/rgba.html"&gt;Voir le résultat sur votre navigateur&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Support de l'écriture RGBa&lt;/h3&gt;

&lt;p&gt;En décembre 2008, &lt;a href="http://forum.alsacreations.com/profile-2043-Florent-V.html"&gt;Florent V.&lt;/a&gt;, publie une &lt;a href="http://covertprestige.info/css/couleurs-rvba/"&gt;page de test du support des couleurs &lt;code&gt;RGBa&lt;/code&gt;&lt;/a&gt;. On peut y constater qu'à cette époque, assez peu de navigateurs implémentaient correctement ce système de notation.&lt;/p&gt;

&lt;p&gt;Le site anglophone &lt;a href="http://css-tricks.com/rgba-browser-support/" hreflang="en"&gt;CSS Tricks&lt;/a&gt; a publié plus récemment un tableau récapitulatif du support de &lt;code&gt;RGBa&lt;/code&gt; : on y observe qu&amp;#39;à l&amp;#39;heure actuelle la plupart des navigateurs prennent en charge cette valeur de transparence... &lt;strong&gt;à l'exception d'Internet Explorer, toutes versions, IE8 comprise.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Et pendant ce temps, sur IE...&lt;/h3&gt;

&lt;p&gt;Cette fonctionnalité n&amp;#39;étant pas reconnue par Internet Explorer, il est possible de concevoir la situation sous plusieurs angles :&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;On bidouille avec la &lt;a href="http://www.commentcamarche.net/faq/sujet-18953-creer-une-div-avec-transparence"&gt;propriété Opacity et le positionnement absolu&lt;/a&gt; pour s'adapter à toutes les versions d'IE (IE6, IE7, IE8);&lt;/li&gt;
  &lt;li&gt;On utilise une alternative à l'aide de PNG transparent pour IE7 et IE8, en &lt;a href="http://www.ie6nomore.com/" hreflang="en"&gt;faisant fi des années de bons et loyaux services d'IE6&lt;/a&gt;;&lt;/li&gt; 
  &lt;li&gt;On détourne un filtre propriétaire Microsoft que l'on va appliquer uniquement sur IE;&lt;/li&gt;
  &lt;li&gt;On se fiche d'Internet Explorer, c'est vrai quoi !&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pour des raisons de déontologie, nous allons nous pencher plus avant sur l'avant-dernière alternative et allons la décortiquer en détail...&lt;/p&gt;

&lt;h3&gt;Le filtre Gradient pour IE&lt;/h3&gt;

&lt;p&gt;Cette astuce consiste à détourner un filtre propriétaire à Microsoft, le &lt;code&gt;gradient filter&lt;/code&gt; (&lt;code&gt;filter:progid:DXImageTransform.Microsoft.gradient&lt;/code&gt; pour les intimes), dont la fonction est de créer des dégradés de couleur d'arrière-plan sur Internet Explorer.&lt;/p&gt;

&lt;p&gt;Ce filtre a pour avantage de prendre en compte la transparence de la couche Alpha dans ses valeurs. Il est donc possible de rendre le fond transparent en indiquant la même couleur pour le début et la fin du "dégradé".&lt;/p&gt;

&lt;p&gt;La couleur est exprimée en hexadécimal, au format &lt;code&gt;#AARRGGBB&lt;/code&gt;, où &lt;code&gt;AA&lt;/code&gt; est la valeur hexadécimale de la transparence, &lt;code&gt;RR&lt;/code&gt; la valeur de la couche rouge, &lt;code&gt;GG&lt;/code&gt; la valeur de la couche verte et &lt;code&gt;BB&lt;/code&gt; la valeur de la couche bleue.&lt;/p&gt;
  
&lt;p&gt;Par exemple,  les styles CSS suivants vont appliquer une couleur bleue (0000ff) d'une transparence de 20% au bloc:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
div {
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#330000ff,endColorstr=#330000ff);
}
&lt;/code&gt;&lt;/pre&gt;
  
&lt;p&gt;A titre de pense-bête, voici une correspondance entre le pourcentage de transparence Alpha souhaité et la valeur correspondante en hexadécimal :
&lt;ul&gt;
  &lt;li&gt;0% (transparent) -&amp;gt; #00 en hexadécimal&lt;/li&gt;
  &lt;li&gt;20% -&amp;gt; #33&lt;/li&gt;
  &lt;li&gt;50% -&amp;gt; #80&lt;/li&gt;
  &lt;li&gt;75% -&amp;gt; #C0&lt;/li&gt;
  &lt;li&gt;100% (opaque) -&amp;gt; #FF&lt;/li&gt;
&lt;/ul&gt;
 
&lt;p&gt;Bien entendu, pour éviter de gêner les bons élèves, nous allons nous appliquer à administrer cette bidouille uniquement sur Internet Explorer à l'aide d'un &lt;a href="http://www.alsacreations.com/astuce/lire/48-commentaires-conditionnels.html"&gt;commentaire conditionnel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le code HTML/CSS pourrait ressembler à celui-ci :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
  .opacite {
    width: 50%;
    background-color: rgb(0, 0, 255); /* alternative solide */
    background-color: rgba(0, 0, 255, 0.2);
  }
&amp;lt;/style&amp;gt;
&amp;lt;!--[if IE lte IE 8]&amp;gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
    .opacite {
      background:transparent;
      filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#330000ff,endColorstr=#330000ff);
      zoom: 1;
    } 
  &amp;lt;/style&amp;gt;
&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
  
&lt;p&gt;Le résultat fonctionne sur Chrome, Safari 4, Opera 10, Firefox 3, IE6, IE7, IE8, etc. Vous pouvez &lt;a href="http://www.alsacreations.com/xmedia/tuto/exemples/transparence/rgba-hack.html"&gt;le constater sur votre navigateur&lt;/a&gt;.&lt;/p&gt;
  
&lt;h3&gt;Conclusion, remerciements... et &lt;em title="lien retour"&gt;backlink&lt;/em&gt; mérité&lt;/h3&gt;

&lt;p&gt;Ce tutoriel est indirectement inspiré des articles de 24ways &lt;a href="http://24ways.org/2009/working-with-rgba-colour" hreflang="en"&gt;"Working with RGBa colors"&lt;/a&gt; et de CSS Tricks &lt;a href="http://css-tricks.com/rgba-browser-support/" hreflang="en"&gt;"RGBa browser support"&lt;/a&gt;, que je remercie de distiller leurs connaissances.&lt;/p&gt;
&lt;p&gt;Il est possible de visualiser le résultat final en production sur mon site personnel &lt;a title="Un bien beau site que voilà !" href="http://www.polychromies.com/"&gt;&lt;strong&gt;Polychromies&lt;/strong&gt;&lt;/a&gt; où vous pourrez comparer le rendu entre les différents navigateurs et constater que les arrondis ne semblent pas être compatibles avec le filtre Gradient chez Internet Explorer, même avec &lt;a href="http://www.alsacreations.com/tuto/lire/891-coins-arrondis-css-sans-images.html"&gt;la technique JavaScript de Roundies&lt;/a&gt;.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/YELyqLDYUjdU7pRc_FYrIx13p9k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YELyqLDYUjdU7pRc_FYrIx13p9k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/YELyqLDYUjdU7pRc_FYrIx13p9k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/YELyqLDYUjdU7pRc_FYrIx13p9k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/9FqC5QHZuq8" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.alsacreations.com/tuto/lire/909-CSS-transparence-couleur-rgba.html</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1259772293071"><id gr:original-id="http://www.smashingmagazine.com/?p=17301">tag:google.com,2005:reader/item/7c3d22aad31072df</id><category term="Coding" scheme="http://www.smashingmagazine.com" /><category term="buttons" scheme="http://www.smashingmagazine.com" /><category term="css3" scheme="http://www.smashingmagazine.com" /><category term="Design" scheme="http://www.smashingmagazine.com" /><title type="html">Pushing Your Buttons With Practical CSS3</title><published>2009-12-02T14:45:15Z</published><updated>2009-12-02T15:53:56Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/Y_dNrEbt7d4/" type="text/html" /><content xml:base="http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/" xml:lang="en" type="html">&lt;table width="650"&gt;&lt;tr&gt;&lt;td width="650"&gt;&lt;div style="width:650px"&gt; &lt;img src="http://creatives.commindo-media.de/static/smashing-magazine-advertisement.gif" alt="Smashing-magazine-advertisement in Pushing Your Buttons With Practical CSS3" border="0"&gt;&lt;br&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=56"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=56" border="0" alt=" in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=63"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=63" border="0" alt=" in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt; &lt;a href="http://creatives.commindo-media.de/www/delivery/ck.php?zoneid=64"&gt;&lt;img src="http://creatives.commindo-media.de/www/delivery/avw.php?zoneid=64" border="0" alt=" in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;img src="http://imp.constantcontact.com/imp/cmp.jsp?impcc=IMP_DIMPBPRSMASHRSS&amp;amp;o=http://img.constantcontact.com/lp/images/standard/spacer.gif" alt="Spacer in Pushing Your Buttons With Practical CSS3" border="0" width="1" height="1"&gt;&lt;/p&gt;&lt;p style="float:left;display:inline;padding:7px 7px 0 0;margin:5px 5px 1px 0"&gt;&lt;a style="text-decoration:none;font-weight:normal;color:#333" href="http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Pushing Your Buttons With Practical CSS3 (via @smashingmag) -&lt;/a&gt;&lt;/p&gt;&lt;p&gt;CSS3 is the partially implemented sequel to the CSS2 spec we all know and love. It’s already popping up in new browsers such as Firefox 3.5, Safari 4 and Chrome. In this article, the first of the articles that explore practical (and even far-fetched) implementation of CSS3, we start by applying CSS3 to something we all have to create: &lt;strong&gt;buttons&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;Calls to action are critical for any website, and a compelling, attention-grabbing, clickable button goes a long way toward driving that engagement. In the past, really awesome buttons needed extra markup, sliding doors or other trickery. We’ll show you here how to create nice button styles without any hacks or cheats.&lt;/p&gt;&lt;h3&gt;Step 1: The Super-Awesome Button&lt;/h3&gt;&lt;p&gt;Some time ago we published a post titled “&lt;a href="http://www.zurb.com/article/266/super-awesome-buttons-with-css3-and-rgba"&gt;Super Awesome Buttons with CSS3 and RGBa&lt;/a&gt;.” Those buttons will be our first step to creating buttons that really click. We will briefly review the technique and then extend it, fixing the problems that we have encountered along the way.&lt;/p&gt;&lt;h4&gt;Using Box-Shadow and RGBa&lt;/h4&gt;&lt;p&gt;Our first goal when we were about to create a versatile family of buttons was to eliminate the problem that HEX-based drop-shadows have on different backgrounds. As you can see below, we can use &lt;em&gt;box-shadow&lt;/em&gt; to create a drop-shadow, but the shadow color doesn’t work on both dark and light backgrounds. To get around that, we used a color model that is available in new browsers: &lt;strong&gt;RGBa&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/buttons-1.png" alt="Buttons-1 in Pushing Your Buttons With Practical CSS3"&gt;&lt;/p&gt;&lt;p&gt;RGBa works like the standard RGB model — &lt;em&gt;255, 255, 255&lt;/em&gt; for white, for example — but has a fourth property that controls the alpha, or transparency, channel. In the buttons above, the gray shadow that we created for the white background is much too light against the dark background. However, using RGBa we can create a black shadow that is transparent. This allows the shadow to work against any kind of background:&lt;/p&gt;&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/buttons-2.png" alt="Buttons-2 in Pushing Your Buttons With Practical CSS3"&gt;&lt;/p&gt;&lt;pre&gt;button.awesome, .button.awesome {
	…
	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
	…
}&lt;/pre&gt;&lt;p&gt;That solves our &lt;em&gt;box-shadow&lt;/em&gt; problems. All that’s left is a dash of CSS properties and a simple PNG overlay to create a finished button that can be restyled with any color, on any background, and that will work just fine.&lt;/p&gt;&lt;h4&gt;The Amazing Border-Radius&lt;/h4&gt;&lt;p&gt;Creating objects with rounded edges has always been a mess on the Web; after all, every object on the Web is a rectangle. CSS3 makes our lives a little easier by implementing an incredibly easy way to round off objects without sliding doors or obnoxious background elements. With these buttons, we’re using a standard background color and a PNG overlay to give them depth. We are &lt;em&gt;not&lt;/em&gt; using a background image to round the edges.&lt;/p&gt;&lt;pre&gt;button.awesome, .button.awesome {
	…
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	…
}&lt;/pre&gt;&lt;p&gt;Currently, Webkit (Safari, Chrome) and Firefox have slightly different implementations of &lt;em&gt;border-radius&lt;/em&gt;. Webkit will round off functional elements (like images), while Firefox will not. However, both will very cleanly &lt;strong&gt;round off an object and mask the background image, color or both&lt;/strong&gt; (as with our buttons).&lt;/p&gt;&lt;p&gt;If you get in close, you can see that the borders behave a little strangely at the pixel level, but for the most part &lt;em&gt;border-radius&lt;/em&gt; is a great way to bring rounded edges into your design without the mess. Here’s the complete CSS for these buttons:&lt;/p&gt;&lt;pre&gt;button.awesome, .button.awesome {
	…
	background: #222 url(/images/alert-overlay.png) repeat-x;
	display: inline-block;
	padding: 5px 10px 6px;
	color: #fff;
	text-decoration: none;
	font-weight: bold;
	line-height: 1;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	-moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	-webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5);
	text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
	border-bottom: 1px solid rgba(0,0,0,0.25);
	position: relative;
	cursor: pointer;
	…
}&lt;/pre&gt;&lt;h4&gt;Final Touches&lt;/h4&gt;&lt;p&gt;We’ve created the standard buttons you can see above, but another great thing about buttons that don’t use images is that we can create any color we want and with some simple class names generate an entire repertoire of buttons that we can call on any time. This is great for creating a reusable set of buttons that can be adapted to your or your clients’ style guide. Check out the color codes that we are using:&lt;/p&gt;&lt;pre&gt;.blue.awesome {
	background-color: #2daebf;
}

.red.awesome {
	background-color: #e33100;
}

.magenta.awesome {
	background-color: #a9014b;
}

.orange.awesome {
	background-color: #ff5c00;
}

.yellow.awesome {
	background-color: #ffb515;
}
&lt;/pre&gt;&lt;p&gt;These simple classes allow us to quickly call on the button we want to get the action we need users to take. We’ve used similar methods in the buttons we’ll walk through in the next few sections.&lt;/p&gt;&lt;p&gt;Our last step is sizing. Without a sliding-doors situation our button size is only limited by the size of our overlay image (and in future buttons, not even by that). We’ll use a few classes (&lt;code&gt;small&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt; and &lt;code&gt;large&lt;/code&gt;) to create sizes that we can call in different situations.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zurb.com/playground/super-awesome-buttons"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2009/12/various-buttons.png" width="498" height="411" alt="Various-buttons in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;The buttons in various sizes: an overview.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;And that’s it! A scalable, easily configured set of buttons that works in all browsers (through graceful degradation) and will get you the impact you want. In the next few sections we’ll build on these buttons to show you how CSS3 can push these even further in some interesting directions.&lt;/p&gt;&lt;div style="padding:25px 15px;background:#fafafafa none repeat scroll 0% 0%;display:block"&gt;&lt;a href="http://www.zurb.com/playground/super-awesome-buttons"&gt;&lt;img style="float:left;margin-right:15px" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/super-awesome-buttons.jpg" alt="Super-awesome-buttons in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;h5 style="margin-top:20px;font-size:21px;margin-bottom:8px"&gt;&lt;a href="http://www.zurb.com/playground/super-awesome-buttons"&gt;See the live demo »&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;We’ve created a live demo page for these buttons; it’s in a playground, where we create small side projects and cool toys. We’ll be linking to the playground examples throughout this post and the rest of our series.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;&lt;strong&gt;A note about compatibility:&lt;/strong&gt; true to form, IE8 does not support &lt;em&gt;border-radius&lt;/em&gt;. At ZURB, we’ve adopted a “graceful degradation” paradigm, so these corners will be square in IE. In our experience, the additional development cost for elements like this is not worth it, and we rely on these properties to cleanly degrade and not damage the layout or readability. These buttons are no exception: they are still as clickable in IE as anywhere else, just not quite as pretty.&lt;/em&gt;&lt;/p&gt;&lt;h3&gt;Step 2: Radioactive Buttons&lt;/h3&gt;&lt;p&gt;Now that we’ve gotten our feet wet with CSS3, let’s go in a different direction. For a recent client project, we wanted to create a stylized, attractive and eye-catching call to action for the home page. &lt;strong&gt;We came up with the idea of a radioactive button&lt;/strong&gt;, a button that actually pulses on the page for more attention.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zurb.com/playground/radioactive-buttons"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/radioactive-buttons.png" alt="Radioactive-buttons in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Kitschy? Maybe a little. But despite its impracticality, for some websites and clients, the “Wow” factor—that feeling the user gets when they arrive at a website and say, “Oooh, ahhh!”—can’t be ignored. Where we only used to have , thanks to some tricks we’ve already covered (and one we haven’t), we can move beyond that terrifically obnoxious &lt;em&gt;blink&lt;/em&gt; tag and explore a whole new range of opportunities to animate using pure CSS.&lt;/p&gt;&lt;h4&gt;Animation: No JavaScript Required&lt;/h4&gt;&lt;p&gt;The secret to the radioactive button is in a new CSS3 property called &lt;em&gt;animation&lt;/em&gt; (or, as it currently exists, &lt;em&gt;-webkit-animation&lt;/em&gt; and &lt;em&gt;-moz-animation&lt;/em&gt;). Our radioactive buttons are structurally and stylistically identical to the buttons in step 1, but with one important change. In lieu of a static drop-shadow, we’ve used the &lt;em&gt;box-shadow&lt;/em&gt; property to create a glow around the button. With “glowing shadow” added, the next step is to use CSS3 animation to dim and brighten it.&lt;/p&gt;&lt;h4&gt;Creating the Animation&lt;/h4&gt;&lt;p&gt;The first step in our radioactive awesomeness is to create a timed event that modifies existing CSS properties. Check out this odd-looking property:&lt;/p&gt;&lt;pre&gt;@-webkit-keyframes greenPulse
{
	from {
		background-color: #749a02;
		-webkit-box-shadow: 0 0 9px #333;
	}
	50% {
		background-color: #91bd09;
		-webkit-box-shadow: 0 0 18px #91bd09;
	}
	to {
		background-color: #749a02;
		-webkit-box-shadow: 0 0 9px #333;
	}
}&lt;/pre&gt;&lt;p&gt;Here’s how the code works:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;@-webkit-keyframes&lt;/em&gt; tells the browser that we’re defining an animation based on keyframes, or points in the animation to where properties will change. The browser then knows to smoothly transition between those frames.&lt;/li&gt;&lt;li&gt;&lt;em&gt;greenPulse&lt;/em&gt; is the name of the animation. We need this to attach to objects later on.&lt;/li&gt;&lt;li&gt;&lt;em&gt;from { … }&lt;/em&gt; defines the starting point of the animation; in our case, a certain background color for the button and a box-shadow color (particularly, one that disappears into the background).&lt;/li&gt;&lt;li&gt;&lt;em&gt;50% { … }&lt;/em&gt; means that one change happens halfway through the animation.&lt;/li&gt;&lt;li&gt;&lt;em&gt;to { … }&lt;/em&gt; defines the last frame of the animation. Note that animations always return to their &lt;em&gt;from&lt;/em&gt; state—they don’t stop on the last frame. This means that a smooth animation needs to begin and end with the same properties and values.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All right, we’ve created the animation. It takes an object and over a set time changes the box-shadow color to green and then back to gray. Now, we just have to make it active by applying the animation to our buttons.&lt;/p&gt;&lt;pre&gt;.green.button {
	…
	-webkit-animation-name: greenPulse
	-webkit-animation-duration: 2s;
	-webkit-animation-iteration-count: infinite;
	…
}&lt;/pre&gt;&lt;p&gt;Pretty cool, isn’t it? &lt;em&gt;-webkit-animation&lt;/em&gt; has many potential uses and, when combined with some very simple JavaScript (like &lt;em&gt;onclick&lt;/em&gt;), you can create very rich effects and interaction without resorting to a JavaScript effects library.&lt;/p&gt;&lt;div style="padding:15px;background:#fafafa none repeat scroll 0% 0%;display:block"&gt;&lt;a href="http://www.zurb.com/playground/radioactive-buttons"&gt;&lt;img style="float:left;margin-right:15px" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/radioactive-buttons.jpg" alt="Radioactive-buttons in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;h5 style="margin-top:18px;font-size:21px;margin-bottom:8px"&gt;&lt;a href="http://www.zurb.com/playground/radioactive-buttons"&gt;See the live demo »&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;Check out the live demo of radioactive buttons in our playground. For maximum awesomeness, check it out in Safari 4; radioactive buttons use some Webkit-specific properties that aren’t implemented well in Chrome quite yet.&lt;/p&gt;&lt;/div&gt;&lt;h3&gt;Nice, Simple, User-Friendly Buttons, Google-Style&lt;/h3&gt;&lt;p&gt;Our last example was inspired by some recent changes made to one of the most trafficked pages on the Web: the Google search page. In addition to enlarging the search field and text size, Google also rolled out some new buttons for Webkit-based browsers (notably its own, Chrome).&lt;/p&gt;&lt;p&gt;These buttons incorporate everything that makes our buttons in this article great, with one cool trick: &lt;strong&gt;no images at all.&lt;/strong&gt; Google has used a new property called &lt;em&gt;-webkit-gradient&lt;/em&gt; to generate a gradient using only CSS.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.zurb.com/playground/google-buttons"&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/google-buttons.png" alt="Google-buttons in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Using CSS Gradients&lt;/h4&gt;&lt;p&gt;Gradients in CSS are cool because they are a CSS function, much like &lt;em&gt;url()&lt;/em&gt;, which means that we can use gradients anywhere images go, including in the background or in borders (don’t worry, we’ll get to &lt;em&gt;border-image&lt;/em&gt; in a later post). &lt;strong&gt;Here’s how gradients work:&lt;/strong&gt;&lt;/p&gt;&lt;pre&gt;.g-button {
	…
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(255, 255, 255)), to(rgb(98,202,227)));
	…
}&lt;/pre&gt;&lt;p&gt;Let’s break this down:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;linear&lt;/em&gt; means this is a linear gradient, as opposed to radial. This changes the color across a single axis, rather than in concentric circles.&lt;/li&gt;&lt;li&gt;&lt;em&gt;0% 0%, 0% 100%&lt;/em&gt; are coordinates. We’re saying that the gradient begins at 0% X, 0% Y and ends at 0% X, 100% Y: top-left corner to bottom-left corner. We could use &lt;em&gt;top-left, bottom-left&lt;/em&gt; just as well.&lt;/li&gt;&lt;li&gt;&lt;em&gt;from(rgb(255, 255, 255))&lt;/em&gt; is the starting color for the gradient. If the syntax looks familiar, it should be: it’s very similar to the syntax for &lt;em&gt;@-webkit-keyframes&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;&lt;em&gt;to(rgb(221, 221, 221))&lt;/em&gt; is the ending color. While we have only used RGB here, you can see how gradients could get really interesting if we use RGBa and are able to control the opacity of points on the gradient.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The rest of the button is ordinary: padding, &lt;em&gt;border-radius&lt;/em&gt; and all the fun things we’ve gone over so far. Gradients is the star here, though, and it has thousands of potential uses. Here, we’ve created (albeit in Google’s footsteps) rich, engaging buttons that are 100% CSS, no images required.&lt;/p&gt;&lt;div style="padding:15px;background:#fafafa none repeat scroll 0% 0%;display:block"&gt;&lt;a href="http://www.zurb.com/playground/google-buttons"&gt;&lt;img style="float:left;margin-right:15px" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/images/css3-buttons/google-buttons.jpg" alt="Google-buttons in Pushing Your Buttons With Practical CSS3"&gt;&lt;/a&gt;&lt;h5 style="margin-top:18px;font-size:21px;margin-bottom:8px"&gt;&lt;a href="http://www.zurb.com/playground/google-buttons"&gt;See the live demo »&lt;/a&gt;&lt;/h5&gt;&lt;p&gt;You can see a live demo of these buttons in the playground, or simply visit the Google search home page in a Webkit browser.&lt;/p&gt;&lt;/div&gt;&lt;h3 style="clear:both"&gt;Coming Up: Better, Stronger, Faster Design&lt;/h3&gt;&lt;p&gt;This is the first of the articles that take advantages of the powerful new features coming in CSS 3. In the  following posts, we’ll show you how CSS3 not only can make implementation faster and easier, but can help you really fly off the rails and push CSS to its breaking point while creating impressive visual effects.&lt;/p&gt;&lt;p&gt;&lt;br&gt; &lt;a href="http://answers.polldaddy.com/poll/2330515/"&gt;Would you like to see more similar posts on Smashing Magazine in the future?&lt;/a&gt;&lt;span style="font-size:9px"&gt;(&lt;a href="http://answers.polldaddy.com"&gt;opinion&lt;/a&gt;)&lt;/span&gt;&lt;br&gt; &lt;/p&gt;&lt;h3&gt;Related posts&lt;/h3&gt;&lt;p&gt;You may be interested in the following related posts:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/11/21/zen-coding-a-new-way-to-write-html-code/"&gt;Zen Coding: A Speedy Way To Write HTML/CSS Code&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/11/18/designing-css-buttons-techniques-and-resources/"&gt;Designing CSS Buttons: Techniques and Resources&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/10/05/mastering-css-coding-getting-started/"&gt;Mastering CSS Coding: Getting Started&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/"&gt;Taming Advanced CSS Selectors&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;References and Resources&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://css-tricks.com/rgba-browser-support/"&gt;RGBa Browser Support at CSS-Tricks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webkit.org/blog/138/css-animation/"&gt;Introduction to CSS Animation at Surfin’ Safari&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zurb.com/article/221/css3-animation-will-rock-your-world"&gt;CSS3 Animation Tutorial at ZURB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.css3.info/webkit-introduce-more-new-features/"&gt;Introduction to CSS Transitions at CSS3.info&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://developer.apple.com/safari/library/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Introduction/Introduction.html"&gt;Safari Visual Effects Documentation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.the-art-of-web.com/css/border-radius/"&gt;Using border-radius at The Art of Web&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;em&gt;(al)&lt;/em&gt;&lt;/p&gt;&lt;hr&gt;&lt;p&gt;&lt;small&gt;© ZURB for &lt;a href="http://www.smashingmagazine.com"&gt;Smashing Magazine&lt;/a&gt;, 2009. | &lt;a href="http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Permalink&lt;/a&gt; | &lt;a href="http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/#comments"&gt;95 comments&lt;/a&gt; | &lt;a title="Bookmark in del.icio.us" href="http://del.icio.us/post?url=http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/&amp;amp;title=Pushing%20Your%20Buttons%20With%20Practical%20CSS3"&gt;Add to del.icio.us&lt;/a&gt; | &lt;a title="Bookmark in Digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Digg this&lt;/a&gt; | &lt;a title="Stumble on StumbleUpon" href="http://www.stumbleupon.com/submit?url=http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Stumble on StumbleUpon!&lt;/a&gt; | &lt;a title="Tweet us!" href="http://twitter.com/home?status=@tweetmeme%20@smashingmag%20Reading%20&amp;#39;Pushing%20Your%20Buttons%20With%20Practical%20CSS3&amp;#39;%20http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Tweet it!&lt;/a&gt; | &lt;a title="Bookmark in Reddit" href="http://reddit.com/submit?url=http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/"&gt;Submit to Reddit&lt;/a&gt; | &lt;a href="http://forum.smashingmagazine.com/"&gt;Forum Smashing Magazine&lt;/a&gt;&lt;br&gt; Post tags: &lt;a href="http://www.smashingmagazine.com/tag/buttons/" rel="tag"&gt;buttons&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/css3/" rel="tag"&gt;css3&lt;/a&gt;, &lt;a href="http://www.smashingmagazine.com/tag/design/" rel="tag"&gt;Design&lt;/a&gt;&lt;br&gt; &lt;/small&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/flxHUHnjl2vGz29J8BPXIIRjLW8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/flxHUHnjl2vGz29J8BPXIIRjLW8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/flxHUHnjl2vGz29J8BPXIIRjLW8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/flxHUHnjl2vGz29J8BPXIIRjLW8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/Y_dNrEbt7d4" height="1" width="1"/&gt;</content><author><name>ZURB</name></author><gr:likingUser>10309887133559368348</gr:likingUser><gr:likingUser>00267300836285719365</gr:likingUser><gr:likingUser>03525184432343740983</gr:likingUser><gr:likingUser>07331836177685121762</gr:likingUser><gr:likingUser>12409564417227926101</gr:likingUser><gr:likingUser>18340831981034978391</gr:likingUser><gr:likingUser>14550250467456371313</gr:likingUser><gr:likingUser>17190600697331505106</gr:likingUser><gr:likingUser>00487992849298729158</gr:likingUser><gr:likingUser>01280645533986514379</gr:likingUser><gr:likingUser>12523659904282573095</gr:likingUser><gr:likingUser>10080639606302241327</gr:likingUser><gr:likingUser>08201098560099105593</gr:likingUser><gr:likingUser>16566193989339067868</gr:likingUser><gr:likingUser>02508319771731836425</gr:likingUser><gr:likingUser>06239751893286125740</gr:likingUser><gr:likingUser>17552883345445111028</gr:likingUser><gr:likingUser>15452630811458668329</gr:likingUser><gr:likingUser>13738243318694501944</gr:likingUser><gr:likingUser>07481088091827153485</gr:likingUser><gr:likingUser>11464273237756462225</gr:likingUser><gr:likingUser>15696246099798632923</gr:likingUser><gr:likingUser>12161298058133441395</gr:likingUser><gr:likingUser>16846354732867081327</gr:likingUser><gr:likingUser>18185968087341283327</gr:likingUser><gr:likingUser>06243913866321047242</gr:likingUser><gr:likingUser>16397708710238144934</gr:likingUser><gr:likingUser>17033829685668984415</gr:likingUser><gr:likingUser>08106817290465149326</gr:likingUser><gr:likingUser>16742347574948609493</gr:likingUser><gr:likingUser>14862241603992271880</gr:likingUser><gr:likingUser>15527489447681890380</gr:likingUser><gr:likingUser>06843739523959365958</gr:likingUser><gr:likingUser>10845737844280048754</gr:likingUser><gr:likingUser>02522501341949674670</gr:likingUser><gr:likingUser>00069993647203284992</gr:likingUser><gr:likingUser>00688531795932100742</gr:likingUser><gr:likingUser>04665800866388504431</gr:likingUser><gr:likingUser>07803639457955864603</gr:likingUser><gr:likingUser>11361687844522324938</gr:likingUser><gr:likingUser>01326028864498215539</gr:likingUser><gr:likingUser>08062803592545546592</gr:likingUser><gr:likingUser>07473722672288884090</gr:likingUser><gr:likingUser>04847386787501110268</gr:likingUser><gr:likingUser>00261091094555643650</gr:likingUser><gr:likingUser>12112149185016883910</gr:likingUser><gr:likingUser>07384909124856542876</gr:likingUser><gr:likingUser>07834155512888131110</gr:likingUser><gr:likingUser>06628695596332134659</gr:likingUser><gr:likingUser>05423648792068188812</gr:likingUser><gr:likingUser>01335594325742914845</gr:likingUser><gr:likingUser>15070760865573468816</gr:likingUser><gr:likingUser>16472845045047747839</gr:likingUser><gr:likingUser>14484974869069298710</gr:likingUser><gr:likingUser>12733832470057032336</gr:likingUser><gr:likingUser>08735471787465251095</gr:likingUser><gr:likingUser>10202755676046173309</gr:likingUser><gr:likingUser>06290280106231941056</gr:likingUser><gr:likingUser>15163237976191664023</gr:likingUser><gr:likingUser>16372329419719317246</gr:likingUser><gr:likingUser>07767316823026830097</gr:likingUser><gr:likingUser>12084459011861000049</gr:likingUser><gr:likingUser>14042137177531591339</gr:likingUser><gr:likingUser>01979860954254968478</gr:likingUser><gr:likingUser>11750786551375619716</gr:likingUser><gr:likingUser>03423605519159974767</gr:likingUser><gr:likingUser>08915768084281935738</gr:likingUser><gr:likingUser>12905267204033508094</gr:likingUser><gr:likingUser>15118660906873240762</gr:likingUser><gr:likingUser>12845355359468881820</gr:likingUser><gr:likingUser>18329655971749741190</gr:likingUser><gr:likingUser>17109652482333750556</gr:likingUser><gr:likingUser>12969105015948043246</gr:likingUser><gr:likingUser>05371488278634755859</gr:likingUser><gr:likingUser>17591894994301565126</gr:likingUser><gr:likingUser>09944833825855168391</gr:likingUser><gr:likingUser>11369539917580373498</gr:likingUser><gr:likingUser>07673478025053741498</gr:likingUser><gr:likingUser>10262584114509259753</gr:likingUser><gr:likingUser>13315958496887070524</gr:likingUser><gr:likingUser>18321901028266046511</gr:likingUser><gr:likingUser>00410117590620400428</gr:likingUser><gr:likingUser>12799262743191833599</gr:likingUser><gr:likingUser>03529204817074525595</gr:likingUser><gr:likingUser>17354355081757593495</gr:likingUser><gr:likingUser>05565193352468459199</gr:likingUser><gr:likingUser>17330965141459357265</gr:likingUser><gr:likingUser>10249099827136609766</gr:likingUser><gr:likingUser>07964064472159271834</gr:likingUser><gr:likingUser>07076486788654955298</gr:likingUser><gr:likingUser>05460472534486943527</gr:likingUser><gr:likingUser>03712775109755796805</gr:likingUser><gr:likingUser>09151807484087020266</gr:likingUser><gr:likingUser>06658358685620999633</gr:likingUser><gr:likingUser>04265716175865010550</gr:likingUser><gr:likingUser>09035784310654256435</gr:likingUser><gr:likingUser>14938523793380798733</gr:likingUser><gr:likingUser>13531600501277868621</gr:likingUser><gr:likingUser>07871283238073091975</gr:likingUser><gr:likingUser>05441046481636337061</gr:likingUser><source gr:stream-id="feed/http://rss1.smashingmagazine.com/feed/"><id>tag:google.com,2005:reader/feed/http://rss1.smashingmagazine.com/feed/</id><title type="html">Smashing Magazine Feed</title><link rel="alternate" href="http://www.smashingmagazine.com/" type="text/html" /></source><feedburner:origLink>http://www.smashingmagazine.com/2009/12/02/pushing-your-buttons-with-practical-css3/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1259711917774"><id gr:original-id="http://hacks.mozilla.org/?p=2647">tag:google.com,2005:reader/item/59e2f59928879961</id><category term="CSS" /><category term="Demo" /><category term="Feature" /><category term="Firefox 3.6" /><category term="SVG" /><category term="Standards" /><title type="html">pointer-events for HTML in Firefox 3.6</title><published>2009-12-01T15:59:32Z</published><updated>2009-12-01T15:59:32Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/nVOYIeleNDE/" type="text/html" /><content xml:base="http://hacks.mozilla.org/" type="html">&lt;p&gt;The &lt;a href="https://developer.mozilla.org/en/CSS/pointer-events"&gt;&lt;code&gt;pointer-events&lt;/code&gt;&lt;/a&gt; CSS property has long been available as part of SVG as a way to control if a mouse event should be sent to the element directly underneath the mouse or passed through to an element underneath it.  In Firefox 3.6 we’ve extended the property to allow it to apply to normal HTML content as well.&lt;/p&gt;
&lt;p&gt;For SVG you can set the &lt;code&gt;pointer-events&lt;/code&gt; property to one of several values, but for HTML you can only set it to one of two values: &lt;code&gt;auto&lt;/code&gt; or &lt;code&gt;none&lt;/code&gt;.&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;&lt;span style="color:#6666ff"&gt;.foo&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
  pointer-events&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; &lt;span style="color:#993333"&gt;none&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When &lt;code&gt;pointer-events&lt;/code&gt; is set to &lt;code&gt;none&lt;/code&gt;, pointer events are passed through the target element and are instead sent to the element that is underneath it.&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;&lt;span style="color:#6666ff"&gt;.foo&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
  pointer-events&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; &lt;span style="color:#993333"&gt;auto&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When &lt;code&gt;pointer-events&lt;/code&gt; is set to &lt;code&gt;auto&lt;/code&gt;, pointer events are handled normally.  That is, the element blocks the events from being passed down to a lower element.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://demos.hacks.mozilla.org/openweb/pointer-events/"&gt;Here’s a real world example from Paul Rouget&lt;/a&gt;.  You will need a &lt;a href="http://www.mozilla.com/en-US/firefox/all-beta.html"&gt;Firefox 3.6 beta&lt;/a&gt; to see it in action.&lt;/p&gt;
&lt;p&gt;Click the &lt;code&gt;pointer-events: none&lt;/code&gt; checkbox under the image to see it change.&lt;/p&gt;
&lt;p&gt;He’s replicated the tag list that’s on the front page of &lt;a href="http://twitter.com"&gt;twitter.com&lt;/a&gt;.  (Note: you have to not be logged in to see the tag list.)  If you go and look at it on twitter you’ll notice that it fades off on the right hand side.  This is done with a transparent, faded image that sits on top of the underlying box.  The tags underneath are clickable links but the image blocks events from being sent to the ones underneath the fade.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://demos.hacks.mozilla.org/openweb/pointer-events/"&gt;&lt;img src="http://hacks.mozilla.org/wp-content/uploads/2009/11/faded-twitter.png" alt=""&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;What Paul has done is show how you can use the &lt;code&gt;pointer-events&lt;/code&gt; property to allow you to click on the underlying links even with a fade on top of it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jFg9Qr4LoFfzJTTS1rJhcZBGE0Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jFg9Qr4LoFfzJTTS1rJhcZBGE0Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jFg9Qr4LoFfzJTTS1rJhcZBGE0Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jFg9Qr4LoFfzJTTS1rJhcZBGE0Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/nVOYIeleNDE" height="1" width="1"/&gt;</content><author><name>Christopher Blizzard</name></author><gr:likingUser>06583050093819252204</gr:likingUser><gr:likingUser>07715634512892873719</gr:likingUser><gr:likingUser>11067853532291698348</gr:likingUser><gr:likingUser>05221790502551658316</gr:likingUser><source gr:stream-id="feed/http://hacks.mozilla.org/feed/"><id>tag:google.com,2005:reader/feed/http://hacks.mozilla.org/feed/</id><title type="html">hacks.mozilla.org</title><link rel="alternate" href="http://hacks.mozilla.org" type="text/html" /></source><feedburner:origLink>http://hacks.mozilla.org/2009/12/pointer-events-for-html-in-firefox-3-6/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1259711773704"><id gr:original-id="http://css-tricks.com/?p=4865">tag:google.com,2005:reader/item/a5541547736fcc6a</id><category term="Article" /><title type="html">Make an Editable/Printable HTML Invoice</title><published>2009-12-01T13:56:48Z</published><updated>2009-12-01T13:56:48Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/eoknIvuzEYo/" type="text/html" /><content xml:base="http://css-tricks.com/" type="html">&lt;p&gt;I always like how in &lt;a href="http://www.freshbooks.com/"&gt;FreshBooks&lt;/a&gt; to edit invoices you literally just click and interact directly with a web page that looks like an invoice. I got to thinking it would be a kinda cool idea to create an editable HTML invoice of my own. This of course can’t do nearly all the awesome stuff FreshBooks can do, but it might be useful to some of you with extremely lightweight invoicing needs.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://css-tricks.com/wp-content/csstricks-uploads/click-edit-print.png" width="570" height="630" alt="" title=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://css-tricks.com/examples/EditableInvoice/"&gt;View Demo&lt;/a&gt;   &lt;a href="http://css-tricks.com/examples/EditableInvoice.zip"&gt;Download Files&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;A bunch of &amp;lt;textarea&amp;gt;s&lt;/h3&gt;
&lt;p&gt;You can pre-set values of textarea elements in HTML just by putting text in between the opening and closing tag. So all it takes to make editable elements on a web page is use textareas. There are a additional bonuses to using textareas. For one, they are real form elements, so you could theoretically wrap this thing in form tag, put a submit button on it, and write some PHP to process it and do other stuff with it. For another, browsers tend to save the values of form elements. So if you, say, accidentally refreshed the page while working on it, the values you changed so far would be fine. &lt;/p&gt;
&lt;h3&gt;Why the heck would you do this with HTML and not with regular desktop software that is built for this kind of thing?&lt;/h3&gt;
&lt;p&gt;Good point, voice in my head. Well for one thing, this requires zero software other than your browser. If you put this up on a secret place on your website, you could theoretically access it from any computer in the world with internet access and a printer and spit out an invoice. &lt;/p&gt;
&lt;p&gt;It’s pretty trivial to print to PDF these days, so ultimately while you are printing it, you could alternatively save to PDF which gives you a real document for emailing or archiving or whatever. It’s just a little hard to edit after the fact.&lt;/p&gt;
&lt;h3&gt;Clean Prints&lt;/h3&gt;
&lt;p&gt;If you want to get a totally clean print of this thing, check out thise print options from Firefox:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://css-tricks.com/wp-content/csstricks-uploads/Print-Options.jpg" width="570" height="552" alt="" title=""&gt;&lt;/p&gt;
&lt;p&gt;Basically, turn off all the header/footer stuff and turn on the background color printing.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Hey ya’ll, quick reminder here: I wrote a book! It’s called Digging Into WordPress and you can &lt;a href="http://digwp.com"&gt;get it here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=cnopE6hfaIg:9DotKzZLr_g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=cnopE6hfaIg:9DotKzZLr_g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=cnopE6hfaIg:9DotKzZLr_g:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=cnopE6hfaIg:9DotKzZLr_g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=cnopE6hfaIg:9DotKzZLr_g:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CssTricks/~4/cnopE6hfaIg" height="1" width="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PdlY4grC0HLFIgZbRb5u8ZlUiio/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PdlY4grC0HLFIgZbRb5u8ZlUiio/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PdlY4grC0HLFIgZbRb5u8ZlUiio/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PdlY4grC0HLFIgZbRb5u8ZlUiio/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/eoknIvuzEYo" height="1" width="1"/&gt;</content><author><name>Chris Coyier</name></author><gr:likingUser>08052501718204634313</gr:likingUser><gr:likingUser>02643945518437778899</gr:likingUser><gr:likingUser>14259469855216919204</gr:likingUser><gr:likingUser>07871283238073091975</gr:likingUser><gr:likingUser>11074027162557305307</gr:likingUser><gr:likingUser>03427753950262082303</gr:likingUser><gr:likingUser>12594669955632319741</gr:likingUser><gr:likingUser>03545964666694920486</gr:likingUser><gr:likingUser>10004739805070549440</gr:likingUser><gr:likingUser>14221150444694116890</gr:likingUser><gr:likingUser>08374436072425383541</gr:likingUser><gr:likingUser>12249435982006332851</gr:likingUser><gr:likingUser>01816360955994609875</gr:likingUser><source gr:stream-id="feed/http://feeds2.feedburner.com/CssTricks"><id>tag:google.com,2005:reader/feed/http://feeds2.feedburner.com/CssTricks</id><title type="html">CSS-Tricks</title><link rel="alternate" href="http://css-tricks.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/CssTricks/~3/cnopE6hfaIg/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1259628855714"><id gr:original-id="http://hacks.mozilla.org/?p=2365">tag:google.com,2005:reader/item/628737c301b6a963</id><category term="CSS" /><category term="Feature" /><category term="Firefox 3.6" /><category term="Standards" /><title type="html">css gradients in Firefox 3.6</title><published>2009-11-30T18:15:25Z</published><updated>2009-11-30T18:15:25Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/aVUvDfZjwaI/" type="text/html" /><content xml:base="http://hacks.mozilla.org/" type="html">&lt;p&gt;Firefox 3.6 includes many &lt;a href="https://developer.mozilla.org/en/Firefox_3.6_for_developers#CSS"&gt;CSS improvements&lt;/a&gt;. In this post we’re going to show you how to use CSS gradients.&lt;/p&gt;
&lt;p&gt;If you are running the latest &lt;a href="http://www.mozilla.com/firefox/all-rc.html"&gt;beta of Firefox 3.6&lt;/a&gt;, you should check out our &lt;a href="http://demos.hacks.mozilla.org/openweb/cssBackground/gradients/"&gt;interactive demo&lt;/a&gt; and take a look at the corresponding code. Use the radio buttons to switch different style options on or off.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Backgrounds with CSS Gradients&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using CSS gradients in a background allows you to display smooth transitions between two or more specified colors without having to use images. This in turn reduces download time and bandwidth use, looks better while zooming, and lets you create a more flexible layout.&lt;/p&gt;
&lt;p&gt;Firefox 3.6 supports two kinds of CSS gradients: linear (&lt;a href="https://developer.mozilla.org/en/CSS/-moz-linear-gradient"&gt;-moz-linear-gradient&lt;/a&gt;) and radial (&lt;a href="https://developer.mozilla.org/en/CSS/-moz-radial-gradient"&gt;-moz-radial-gradient&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Linear Gradients&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To create a &lt;a href="https://developer.mozilla.org/en/CSS/-moz-linear-gradient"&gt;linear gradient&lt;/a&gt;, you’ll need to set a starting point and a direction (or angle) for the gradient  and to define the color stops.&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt; &lt;span style="color:#00AA00"&gt;[&lt;/span&gt;&amp;lt;point&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt; || &amp;lt;angle&lt;span style="color:#00AA00"&gt;&amp;gt;,&lt;/span&gt;&lt;span style="color:#00AA00"&gt;]&lt;/span&gt;? &amp;lt;stop&lt;span style="color:#00AA00"&gt;&amp;gt;,&lt;/span&gt; &amp;lt;stop&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#00AA00"&gt;[&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &amp;lt;stop&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#00AA00"&gt;]&lt;/span&gt;&lt;span style="color:#00AA00"&gt;*&lt;/span&gt; &lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Starting Point.&lt;/strong&gt; The starting point works just like &lt;a href="http://www.w3.org/TR/css3-background/#the-background-position"&gt;background position&lt;/a&gt;. You can set the horizontal and the vertical positions as a percentage, in pixels, or using left/center/right for horizontal, and top/center/bottom for vertical. Positions start from the top left corner. If you don’t specify the horizontal or the vertical position, it will default to center.&lt;/p&gt;
&lt;p&gt;For example, here’s a linear gradient that starts at the center (horizontal) and top (vertical), and goes from blue to white:&lt;/p&gt;
&lt;p&gt;&lt;img title="basic_linear_bluetop" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/basic_linear_bluetop.png" alt="basic_linear_bluetop" width="116" height="116"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;  &lt;span style="color:#6666ff"&gt;.linear_gradient_square&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;width&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; &lt;span style="color:#933"&gt;100px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;height&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; &lt;span style="color:#933"&gt;100px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;border&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; &lt;span style="color:#933"&gt;1px&lt;/span&gt; &lt;span style="color:#993333"&gt;solid&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#333&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;top&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;blue&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
  &lt;span style="color:#00AA00"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;One that starts left (horizontal) and center (vertical):&lt;/p&gt;
&lt;p&gt;&lt;img title="basic_linear_blueleft" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/basic_linear_blueleft.png" alt="basic_linear_blueleft" width="111" height="111"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;blue&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And a gradient starting left (horizontal) and top (vertical):&lt;/p&gt;
&lt;p&gt;&lt;img title="basic_linear_bluetopleft" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/basic_linear_bluetopleft.png" alt="basic_linear_bluetopleft" width="109" height="110"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;top&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;blue&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Angle&lt;/strong&gt;. As you can see above, if you don’t specify an angle, it is defined automatically based on the start position. If you would like more control over the direction of the gradient, you can set the &lt;a href="http://www.w3.org/TR/css3-values/#angles"&gt;angle&lt;/a&gt; as well.&lt;/p&gt;
&lt;p&gt;For example, the following gradients have the same starting point of left center, but the one on the right hand-side also has an angle of 20 degrees.&lt;/p&gt;
&lt;p&gt;&lt;img title="linear_gradient_angle" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/linear_gradient_angle.png" alt="linear_gradient_angle" width="231" height="119"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt; 20deg&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;black&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When specifying the angle, remember that is it the angle between a horizontal line and the gradient line, going counter-clockwise. So using 0deg will generate a left to right horizontal gradient, while 90deg will create a vertical gradient from the bottom to the top.&lt;/p&gt;
&lt;p&gt;&lt;img title="linear_redangles" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/linear_redangles.png" alt="linear_redangles" width="487" height="124"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&amp;lt;angle&lt;span style="color:#00AA00"&gt;&amp;gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Color Stops.&lt;/strong&gt; In addition to start position and angle, you should specify color stops. Color stops are points along the gradient line that will have the specified color at the specified location (set as a percentage or length). The number of color stops is unlimited. If you use a percentage for the location, 0% represents the starting point, and 100% is the ending point, but values above and below those can be used to achieve the desired effect.&lt;/p&gt;
&lt;p&gt;Here’s a simple example with three color stops. Because no point is specified for the first and last colors, they will default to 0% and 100%.&lt;/p&gt;
&lt;p&gt;&lt;img title="linear_colorstops" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/linear_colorstops1.png" alt="linear_colorstops" width="108" height="112"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;top&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;blue&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;80&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; orange&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Colors will be evenly spaced if no position is specified.&lt;/p&gt;
&lt;p&gt;&lt;img title="linear_rainbow" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/linear_rainbow.png" alt="linear_rainbow" width="113" height="116"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; orange&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;green&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;blue&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Transparency.&lt;/strong&gt; Gradients also support transparency. This can be useful, for example, when stacking multiple backgrounds. Here’s a combination of two backgrounds: one image and one linear gradient from white to transparent white.&lt;/p&gt;
&lt;p&gt;&lt;img title="linear_multibg_transparent" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/linear_multibg_transparent.png" alt="linear_multibg_transparent" width="643" height="119"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;&lt;span style="color:#6666ff"&gt;.multibackground_transparent&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;right&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; rgba&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;255&lt;span style="color:#00AA00"&gt;,&lt;/span&gt;255&lt;span style="color:#00AA00"&gt;,&lt;/span&gt;255&lt;span style="color:#00AA00"&gt;,&lt;/span&gt;0&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; rgba&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;255&lt;span style="color:#00AA00"&gt;,&lt;/span&gt;255&lt;span style="color:#00AA00"&gt;,&lt;/span&gt;255&lt;span style="color:#00AA00"&gt;,&lt;/span&gt;1&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;url&lt;/span&gt;&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;font-style:italic"&gt;http://demos.hacks.mozilla.org/openweb/resources/images/patterns/flowers-pattern.jpg&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Radial Gradients&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The syntax for radial gradients is very similar to that of linear gradients:&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#00AA00"&gt;[&lt;/span&gt;&amp;lt;bg-position&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt; || &amp;lt;angle&lt;span style="color:#00AA00"&gt;&amp;gt;,&lt;/span&gt;&lt;span style="color:#00AA00"&gt;]&lt;/span&gt;? &lt;span style="color:#00AA00"&gt;[&lt;/span&gt;&amp;lt;shape&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt; || &amp;lt;size&lt;span style="color:#00AA00"&gt;&amp;gt;,&lt;/span&gt;&lt;span style="color:#00AA00"&gt;]&lt;/span&gt;? &amp;lt;color-stop&lt;span style="color:#00AA00"&gt;&amp;gt;,&lt;/span&gt; &amp;lt;color-stop&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#00AA00"&gt;[&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &amp;lt;color-stop&lt;span style="color:#00AA00"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#00AA00"&gt;]&lt;/span&gt;&lt;span style="color:#00AA00"&gt;*&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In addition to the start position, the direction, and the colors, which you have already seen in linear gradients, radial gradients allow you to specify the gradient’s shape (circle or ellipse) and size (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Color stops.&lt;/strong&gt; Just like with linear gradients, you should define color stops along the gradient line. The following circles have the same color stops, but the gradient on the left defaults to evenly spaced colors, while the one on the right has a specific position for each color.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://hacks.mozilla.org/wp-content/uploads/2009/11/radial_gradient_stop.png" alt="radial_gradient_stop" title="radial_gradient_stop" width="243" height="115"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
 &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#993333"&gt;red&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;5&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;25&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;50&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Shape.&lt;/strong&gt; Here you can see the difference between the two possible shapes, a circle (on the left) and an ellipse (on the right), both with a bottom left starting point:&lt;/p&gt;
&lt;p&gt;&lt;img title="radial_circle_ellipse" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/radial_circle_ellipse.png" alt="radial_circle_ellipse" width="544" height="116"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; &lt;span style="color:#6666ff"&gt;.radial_gradient_circle&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;bottom&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;circle&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;
 &lt;span style="color:#6666ff"&gt;.radial_gradient_ellipse&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;bottom&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; ellipse&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Size.&lt;/strong&gt; The different options for size (closest-side, closest-corner, farthest-side, farthest-corner, contain or cover) refer to the point used to define the size of the circle or ellipse. &lt;/p&gt;
&lt;p&gt;Example: closest-side vs. farthest corner for an ellipse.&lt;br&gt;
The following two ellipses have different sizes. The one on the left is set by the distance from the start point (center) to the closest-side, while the one on the right is determined by the distance from the start point to the farthest corner.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://hacks.mozilla.org/wp-content/uploads/2009/11/radial_ellipse_size.png" alt="radial_ellipse_size" title="radial_ellipse_size" width="500"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt;  &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;ellipse closest-side&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;10&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;50&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
  &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;ellipse farthest-corner&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;10&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;50&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Example: closest-side vs. farthest-side for a circle.&lt;br&gt;
The size of the circle on the left is determined by the distance between the start point (the center) and the closest side, while the one on the right is the distance between the start point and the farthest side.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://hacks.mozilla.org/wp-content/uploads/2009/11/radial_circle_size.png" alt="radial_circle_size" title="radial_circle_size" width="541" height="114"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#993333"&gt;circle&lt;/span&gt; closest-side&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;10&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;50&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
 &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#993333"&gt;circle&lt;/span&gt; farthest-side&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;10&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt; &lt;span style="color:#933"&gt;&lt;span style="color:#cc66cc"&gt;50&lt;/span&gt;%&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Example: contained circle.&lt;br&gt;
Here you can see the default circle on the left, and the version of the same gradient but contained on the right.&lt;/p&gt;
&lt;p&gt;&lt;img title="radial_contain" src="http://hacks.mozilla.org/wp-content/uploads/2009/11/radial_contain.png" alt="radial_contain" width="241" height="116"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
 &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;contain&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;yellow&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#cc00cc"&gt;#1E90FF&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Repeating Gradients&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you would like to repeat a gradient, you should use &lt;a href="https://developer.mozilla.org/en/CSS/-moz-repeating-linear-gradient"&gt;-moz-repeating-linear-gradient&lt;/a&gt; and &lt;a href="https://developer.mozilla.org/en/CSS/-moz-repeating-radial-gradient"&gt;-moz-repeating-radial-gradient&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In the examples below, four color stops are specified in each case, and are repeated indefinitely.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://hacks.mozilla.org/wp-content/uploads/2009/11/repeating_gradients.png" alt="repeating_gradients" title="repeating_gradients" width="257" height="117"&gt;&lt;/p&gt;

&lt;div&gt;&lt;div&gt;&lt;pre style="font-family:monospace"&gt; &lt;span style="color:#6666ff"&gt;.repeating_radial_gradient_example&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
    &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-repeating-radial-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;black&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;black&lt;/span&gt; &lt;span style="color:#933"&gt;5px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt; &lt;span style="color:#933"&gt;5px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt; &lt;span style="color:#933"&gt;10px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;
 &lt;span style="color:#6666ff"&gt;.repeating_linear_gradient_example&lt;/span&gt; &lt;span style="color:#00AA00"&gt;{&lt;/span&gt;
     &lt;span style="color:#000000;font-weight:bold"&gt;background&lt;/span&gt;&lt;span style="color:#00AA00"&gt;:&lt;/span&gt; -moz-repeating-linear-gradient&lt;span style="color:#00AA00"&gt;(&lt;/span&gt;&lt;span style="color:#000000;font-weight:bold"&gt;top&lt;/span&gt; &lt;span style="color:#000000;font-weight:bold"&gt;left&lt;/span&gt; -45deg&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;red&lt;/span&gt; &lt;span style="color:#933"&gt;5px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt; &lt;span style="color:#933"&gt;5px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;,&lt;/span&gt; &lt;span style="color:#993333"&gt;white&lt;/span&gt; &lt;span style="color:#933"&gt;10px&lt;/span&gt;&lt;span style="color:#00AA00"&gt;)&lt;/span&gt;&lt;span style="color:#00AA00"&gt;;&lt;/span&gt;
&lt;span style="color:#00AA00"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Check out our &lt;a href="http://demos.hacks.mozilla.org/openweb/cssBackground/gradients/"&gt;interactive demo of linear and radial gradients&lt;/a&gt; for more examples.&lt;/p&gt;
&lt;p&gt;Note that the gradient syntax has changed between Firefox 3.6 beta 1 and beta 2, so if you used gradients with beta 1, you may need to update your code.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ix_GZNtWL8gklZikJBtnWhGe46s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ix_GZNtWL8gklZikJBtnWhGe46s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ix_GZNtWL8gklZikJBtnWhGe46s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ix_GZNtWL8gklZikJBtnWhGe46s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/aVUvDfZjwaI" height="1" width="1"/&gt;</content><author><name>Alix Franquet</name></author><gr:likingUser>04567622599953632987</gr:likingUser><gr:likingUser>05811184787797974732</gr:likingUser><gr:likingUser>05146921633288747240</gr:likingUser><gr:likingUser>10860736180582349694</gr:likingUser><gr:likingUser>06583050093819252204</gr:likingUser><gr:likingUser>10338034929180713105</gr:likingUser><gr:likingUser>12937734507973732684</gr:likingUser><gr:likingUser>17311887303618556006</gr:likingUser><gr:likingUser>04055180457484958414</gr:likingUser><gr:likingUser>04501336620172361003</gr:likingUser><gr:likingUser>15958982902895683344</gr:likingUser><gr:likingUser>17526587290271802812</gr:likingUser><gr:likingUser>18299684937685270424</gr:likingUser><gr:likingUser>08119012746557083796</gr:likingUser><gr:likingUser>01480490415242836851</gr:likingUser><gr:likingUser>09684066549646697208</gr:likingUser><gr:likingUser>11067853532291698348</gr:likingUser><gr:likingUser>12138088723604806845</gr:likingUser><gr:likingUser>08153725498552252661</gr:likingUser><gr:likingUser>08320641174035126326</gr:likingUser><source gr:stream-id="feed/http://hacks.mozilla.org/feed/"><id>tag:google.com,2005:reader/feed/http://hacks.mozilla.org/feed/</id><title type="html">hacks.mozilla.org</title><link rel="alternate" href="http://hacks.mozilla.org" type="text/html" /></source><feedburner:origLink>http://hacks.mozilla.org/2009/11/css-gradients-firefox-36/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1258486914783"><id gr:original-id="http://www.css3.info/?p=743">tag:google.com,2005:reader/item/393291c6d8795797</id><category term="News" /><title type="html">Adobe AIR 2 brings Advanced CSS3 Support to the Desktop</title><published>2009-11-17T15:47:00Z</published><updated>2009-11-17T15:47:00Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/dULNLkQxyOM/" type="text/html" /><author><name>Chris</name></author><gr:likingUser>08940561362860985987</gr:likingUser><source gr:stream-id="feed/http://feeds2.feedburner.com/css3"><id>tag:google.com,2005:reader/feed/http://feeds2.feedburner.com/css3</id><title type="html">CSS3 . Info</title><link rel="alternate" href="http://www.css3.info" type="text/html" /></source><content type="html">Adobe today released a public beta of AIR 2, available for download from their Adobe Labs website, with the final release expected somewhere in the first half of 2010. 
Adobe AIR 2 offers a number of improvements and advantages over its predecessor, including advanced support for CSS3 &amp;amp; HTML5 thanks to an updated version of [...]&lt;img src="http://feeds.feedburner.com/~r/css3/~4/gQh8m-xY_z8" height="1" width="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4eOrB-MigkzWDfzvOZ_psPtkRSQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4eOrB-MigkzWDfzvOZ_psPtkRSQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4eOrB-MigkzWDfzvOZ_psPtkRSQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4eOrB-MigkzWDfzvOZ_psPtkRSQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/dULNLkQxyOM" height="1" width="1"/&gt;</content><feedburner:origLink>http://feedproxy.google.com/~r/css3/~3/gQh8m-xY_z8/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1258476692857"><id gr:original-id="http://www.htmlzengarden.com/?p=789">tag:google.com,2005:reader/item/0edf3b96d73e16ef</id><category term="Réflexions" /><category term="blueprint" /><category term="css" /><category term="navigateurs" /><category term="pixels" /><category term="rythme vertical" /><title type="html">Le rythme vertical en CSS</title><published>2009-11-17T12:33:35Z</published><updated>2009-11-17T12:33:35Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/A2V6k-e_HQw/" type="text/html" /><content xml:base="http://www.htmlzengarden.com/" type="html"> &lt;p&gt;&lt;a href="http://wr.readspeaker.com/webreader/webreader.php?cid=18c69dd51a2bc0f4d305318e0fa39bc3&amp;amp;t=wordpress&amp;amp;url=http://www.htmlzengarden.com/2009/11/le_rythme_vertical_en_css/"&gt;&lt;img src="http://graphics.readspeaker.com/images/wr/listen_fr_fr.gif" alt="Lis moi avec webReader"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;  &lt;p&gt;&lt;em&gt;C’est au tour de &lt;a href="http://stpo.fr/"&gt;Christophe Andrieu&lt;/a&gt; de prendre le clavier. Décidément, on n’est plus chez soi !&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Même si sur le moment il ne m’avait pas frappé outre mesure, je repense assez fréquemment au coup de gueule de &lt;a href="http://www.pixenjoy.com/" title="Pixenjoy"&gt;Gilles Vauvarin&lt;/a&gt; lors de &lt;a href="http://www.paris-web.fr/2009/-Programme-#conf94" title="Webdesigner, l’homme qui parlait à l’oreille des intégrateurs"&gt;sa conférence à Paris-web&lt;/a&gt; cette année : il était consterné que les intégrateurs ne respectent pas le rythme vertical de ses designs.&lt;/p&gt;

&lt;p&gt;Ce fut l’occasion de me rappeler à quel point c’était super, le rythme vertical. Et à quel point j’en avais bavé à chaque fois que j’ai essayé de l’implémenter en &lt;abbr&gt;CSS&lt;/abbr&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(C’est quoi le rythme vertical ? Allez lire &lt;a href="http://www.biologeek.com/ergonomie,informatique/l-importance-du-rythme-vertical-en-design-css/" title="L&amp;#39;importance du rythme vertical en design CSS"&gt;cet excellent article de David sur le sujet&lt;/a&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Blueprint&lt;/em&gt; et les navigateurs sont dans un bateau&lt;/h3&gt;

&lt;p&gt;Remotivé par le sujet, j’attaque donc mon nouveau design avec &lt;a href="http://www.blueprintcss.org/" title="Blueprint"&gt;Blueprint&lt;/a&gt;, framework &lt;abbr&gt;CSS&lt;/abbr&gt; bien connu pour gérer intelligemment ce genre de problématiques délicates. On me l’a notamment conseillé pour éviter de me prendre la tête avec les calculs d’interlignages en &lt;em&gt;em&lt;/em&gt;, qui donneraient des cauchemars à Pythagore en personne.&lt;/p&gt;

&lt;p&gt;Hélas ! J’ai déchanté assez vite. Conserver un rythme vertical avec un vrai design (même minimaliste) est excessivement complexe, Blueprint ou pas Blueprint.&lt;/p&gt;

&lt;p&gt;J’ai notamment buté sur les arrondis générés par les moteurs de rendu des navigateurs, qui ne sont apparemment pas calculés de la même manière.&lt;/p&gt;

&lt;p&gt;Comme tout est défini en &lt;em&gt;em&lt;/em&gt;, on se retrouve assez rapidement avec des styles générés assez exotiques : si mon &lt;em&gt;line-height&lt;/em&gt; est de 1.5 et ma &lt;em&gt;font-size&lt;/em&gt; de base de 11 &lt;abbr title="pixels"&gt;px&lt;/abbr&gt; (12 &lt;abbr title="pixels"&gt;px&lt;/abbr&gt; c’était trop facile), mon &lt;em&gt;line-height&lt;/em&gt; généré va être de 1.5 × 11 = 16.5 &lt;abbr title="pixels"&gt;px&lt;/abbr&gt;… et les demi-pixels, les navigateurs, en gros, n’aiment pas.&lt;/p&gt;

&lt;p&gt;Ou du moins, ils ne l’interprètent pas tous de la même façon (ou alors j’ai vraiment raté un train). Ce qui oblige à une certaine gymnastique pour retomber sur des calculs de pixels générés entiers – qui eux sont interprétés de la même manière partout. Par exemple là, pour avoir un &lt;em&gt;line-height&lt;/em&gt; généré de 17 &lt;abbr title="pixels"&gt;px&lt;/abbr&gt; (mettons), je vais devoir mettre &lt;code&gt;line-height:1.565&lt;/code&gt;… et encore, ça reste un arrondi.&lt;/p&gt;

&lt;p&gt;Imaginez maintenant qu’on rajoute des bordures &lt;abbr&gt;CSS&lt;/abbr&gt;, des images, bref toutes sortes de contenus et de styles qui décalent tout au fur et à mesure avec toujours plus d’arrondis.&lt;/p&gt;

&lt;p&gt;Je ne vous fais pas de dessin, c’est un enfer !&lt;/p&gt;

&lt;h3&gt;Tout passer en pixels ?&lt;/h3&gt;

&lt;p&gt;Bref, j’ai été vite écœuré de cette mélasse d’&lt;em&gt;em&lt;/em&gt; qu’on nous a pourtant appris à aimer dogmatiquement durant toutes ces années d’évangélisation aux bonnes pratiques.&lt;/p&gt;

&lt;p&gt;D’où une question bien légitime : « mais pourquoi n’utilise-t-on pas tout simplement le pixel, unité native de notre medium ? ».&lt;/p&gt;

&lt;p&gt;Évidemment, on sait qu’&lt;abbr&gt;IE&lt;/abbr&gt; ne comprend pas grand-chose aux agrandissements de textes dès qu’on lui parle en pixels… et on entre alors dans des considérations plus philosophiques que techniques. Doit-on laisser &lt;abbr&gt;IE&lt;/abbr&gt; sur le carreau ? N’est-il de toute manière pas intéressant de conserver des unités relatives pour les marges entre paragraphes (par exemple), afin de conserver nativement des proportions harmonieuses ?&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.nota-bene.org/Are-pixel-font-sizes-still-so-bad" title="Are pixel font sizes still so bad?"&gt;Stéphane en parlait il y a deux ans de ça&lt;/a&gt;, les choses n’ont pas évolué depuis, et c’est bien dommage.&lt;/p&gt;

&lt;p&gt;Bref, une piste à oublier, probablement.&lt;/p&gt;

&lt;h3&gt;Vers un mode de calcul normalisé pour tous les navigateurs ?&lt;/h3&gt;

&lt;p&gt;Revenons aux &lt;em&gt;em&lt;/em&gt; : pourquoi les moteurs graphiques des navigateurs sont-ils infoutus de gérer les arrondis de décimales de pixels de la même manière ?&lt;/p&gt;

&lt;p&gt;Y a-t-il des groupes de travail là-dessus ? Des ressources en ligne ? Est-ce que j’ai loupé quelque chose en route ?&lt;/p&gt;

&lt;p&gt;Si vous avez des éléments de réponse je suis avide de les entendre…&lt;/p&gt;

&lt;p&gt;Pour le moment, j’ai cette phrase de Stéphane qui me reste en travers de la gorge : « le rythme vertical pour moi, ne peut se tenir qu’avec des bricoles en &lt;abbr&gt;JS&lt;/abbr&gt; : &lt;abbr&gt;CSS&lt;/abbr&gt; n’est pas assez solide pour ça ».&lt;/p&gt;

&lt;p&gt;Dites-moi que c’est faux !&lt;/p&gt;
 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2r3RyKwrB7jvWFG6lAdyb1CdAl8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2r3RyKwrB7jvWFG6lAdyb1CdAl8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2r3RyKwrB7jvWFG6lAdyb1CdAl8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2r3RyKwrB7jvWFG6lAdyb1CdAl8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/A2V6k-e_HQw" height="1" width="1"/&gt;</content><author><name>STPo</name></author><gr:likingUser>02499890684150797054</gr:likingUser><gr:likingUser>17526587290271802812</gr:likingUser><gr:likingUser>04983189160320482660</gr:likingUser><source gr:stream-id="feed/http://www.htmlzengarden.com/feed/"><id>tag:google.com,2005:reader/feed/http://www.htmlzengarden.com/feed/</id><title type="html">HTML Zen Garden</title><link rel="alternate" href="http://www.htmlzengarden.com" type="text/html" /></source><feedburner:origLink>http://www.htmlzengarden.com/2009/11/le_rythme_vertical_en_css/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1258276779979"><id gr:original-id="http://delicious.com/url/e41997992f00e057857088076078d8d7#neolao">tag:google.com,2005:reader/item/9b8859d824b4da76</id><category term="font" scheme="http://delicious.com/neolao/" /><category term="design" scheme="http://delicious.com/neolao/" /><category term="web" scheme="http://delicious.com/neolao/" /><title type="html">Font Squirrel | Handpicked free fonts for graphic designers with commercial-use licenses.</title><published>2009-11-14T23:35:39Z</published><updated>2009-11-14T23:35:39Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/fyL2GyWORx4/" type="text/html" /><author><name>neolao</name></author><source gr:stream-id="feed/http://feeds.delicious.com/v2/rss/neolao?count=15"><id>tag:google.com,2005:reader/feed/http://feeds.delicious.com/v2/rss/neolao?count=15</id><title type="html">Delicious/neolao</title><link rel="alternate" href="http://delicious.com/neolao" type="text/html" /></source><content type="html">&lt;span&gt;
        &lt;a href="http://delicious.com/post?url=http%3A%2F%2Fwww.fontsquirrel.com%2F&amp;amp;title=Font%20Squirrel%20%7C%20Handpicked%20free%20fonts%20for%20graphic%20designers%20with%20commercial-use%20licenses.&amp;amp;copyuser=neolao&amp;amp;copytags=font+design+web&amp;amp;jump=yes&amp;amp;partner=delrss&amp;amp;src=feed_google" rel="nofollow" title="add this bookmark to your collection at http://delicious.com"&gt;&lt;img src="http://l.yimg.com/hr/img/delicious.small.gif" alt="http://delicious.com" width="10" height="10" border="0"&gt; Bookmark this on Delicious&lt;/a&gt;
        - Saved by &lt;a title="visit neolao&amp;#39;s bookmarks at Delicious" href="http://delicious.com/neolao"&gt;neolao&lt;/a&gt;
                    to
                                                &lt;a rel="tag" title="view neolao&amp;#39;s bookmarks tagged font" href="http://delicious.com/neolao/font"&gt;font&lt;/a&gt;
                                                &lt;a rel="tag" title="view neolao&amp;#39;s bookmarks tagged design" href="http://delicious.com/neolao/design"&gt;design&lt;/a&gt;
                                                &lt;a rel="tag" title="view neolao&amp;#39;s bookmarks tagged web" href="http://delicious.com/neolao/web"&gt;web&lt;/a&gt;
                            			- &lt;a rel="self" title="view more details on this bookmark at Delicious" href="http://delicious.com/url/e41997992f00e057857088076078d8d7"&gt;More about this bookmark&lt;/a&gt;
            &lt;/span&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SdolecYLvVjVY8_mWnMT35h44Ug/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SdolecYLvVjVY8_mWnMT35h44Ug/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SdolecYLvVjVY8_mWnMT35h44Ug/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SdolecYLvVjVY8_mWnMT35h44Ug/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/fyL2GyWORx4" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.fontsquirrel.com/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1258230864330"><id gr:original-id="http://www.htmlzengarden.com/?p=768">tag:google.com,2005:reader/item/2f66e3203e06bef3</id><category term="Réflexions" /><category term="css" /><category term="ergonomie" /><category term="html" /><category term="Liens" /><category term="soulignement" /><title type="html">Survol des hyperliens</title><published>2009-11-14T19:08:23Z</published><updated>2009-11-14T19:08:23Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/m0HViL6wkz0/" type="text/html" /><content xml:base="http://www.htmlzengarden.com/" type="html"> &lt;p&gt;&lt;a href="http://wr.readspeaker.com/webreader/webreader.php?cid=18c69dd51a2bc0f4d305318e0fa39bc3&amp;amp;t=wordpress&amp;amp;url=http://www.htmlzengarden.com/2009/11/survol_des_hyperliens/"&gt;&lt;img src="http://graphics.readspeaker.com/images/wr/listen_fr_fr.gif" alt="Lis moi avec webReader"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;  &lt;p&gt;Éric a récemment abordé &lt;a href="http://www.lesintegristes.net/2009/09/13/hover-vs-active/"&gt;le cas des boutons activés&lt;/a&gt;, je prends le relais et je m’interroge cette fois sur le survol des liens.&lt;/p&gt;

&lt;p&gt;La convention veut que les liens soient identifiés par le soulignement de ceux-ci et je reste donc dans ce cas classique. Bien souvent ensuite (dans le but de signaler l’interaction) ce soulignement sera retiré au survol.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
    a:focus,
    a:hover
    {
        text-decoration:none;
    }
    a:active
    {
        outline:none;
    }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Remarquez au passage :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;que je complète mon sélecteur pour le cas d’une navigation au clavier (j’y reviendrai plus tard) ;&lt;/li&gt;
&lt;li&gt;la définition de l’état actif, trouvée via ce &lt;a href="http://people.opera.com/patrickl/experiments/keyboard/test"&gt;très bon billet sur la suppression de l’&lt;code&gt;outline&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je ne sais pas pour vous, mais j’ai tendance à trouver cette technique (pourtant répandue !) contre-intuitive. C’est comme si le lien « disparaissait » au survol, et que du coup il n’était plus possible (en apparence) de cliquer.&lt;/p&gt;

&lt;p&gt;J’aurais tendance à préférer tout autre mise en forme au survol. Comme par exemple un changement de couleur. On pourrait même reprendre celle des liens visités tiens…&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
    a
    {
        color:#1C6280;
        background-color:inherit;
    }
    a:hover,
    a:focus,
    a:visited
    {
        color:#1C6280;
        background-color:inherit;
    }
    a:active
    {
        outline:none;
    }
&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;J’aimerais lire vos avis et vos arguments, je n’arrive pas à trancher cette question.&lt;/p&gt;

&lt;p&gt;Question bonus : les sélecteurs enrichis pour les navigations au clavier, ça ne pose pas de souci ? Je pense notamment à une personne qui d’une part survol un lien à la souris, tant en tabulant sur un autre lien en parallèle : il se retrouve alors avec deux liens mis en évidence à la fois.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lVhJOAbdHrb7bao5NwAWDHQw8ks/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lVhJOAbdHrb7bao5NwAWDHQw8ks/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lVhJOAbdHrb7bao5NwAWDHQw8ks/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lVhJOAbdHrb7bao5NwAWDHQw8ks/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/m0HViL6wkz0" height="1" width="1"/&gt;</content><author><name>Vincent</name></author><gr:likingUser>02161953143474546279</gr:likingUser><gr:likingUser>02499890684150797054</gr:likingUser><source gr:stream-id="feed/http://www.htmlzengarden.com/feed/"><id>tag:google.com,2005:reader/feed/http://www.htmlzengarden.com/feed/</id><title type="html">HTML Zen Garden</title><link rel="alternate" href="http://www.htmlzengarden.com" type="text/html" /></source><feedburner:origLink>http://www.htmlzengarden.com/2009/11/survol_des_hyperliens/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1258162326186"><id gr:original-id="http://www.htmlzengarden.com/?p=757">tag:google.com,2005:reader/item/0479156f46c7cf3e</id><category term="Réflexions" /><category term="bordures" /><category term="css" /><title type="html">Bordure entre deux colonnes</title><published>2009-11-13T16:23:29Z</published><updated>2009-11-13T16:23:29Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/hChG7ALbhN0/" type="text/html" /><content xml:base="http://www.htmlzengarden.com/" type="html"> &lt;p&gt;&lt;a href="http://wr.readspeaker.com/webreader/webreader.php?cid=18c69dd51a2bc0f4d305318e0fa39bc3&amp;amp;t=wordpress&amp;amp;url=http://www.htmlzengarden.com/2009/11/bordure_entre_deux_colonnes/"&gt;&lt;img src="http://graphics.readspeaker.com/images/wr/listen_fr_fr.gif" alt="Lis moi avec webReader"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;  &lt;p&gt;Petite astuce de rien du tout pour créer une bordure d’un ou plusieurs pixels entre deux colonnes.&lt;/p&gt;

&lt;h3&gt;C’est difficile à faire ?&lt;/h3&gt;

&lt;p&gt;Pas vraiment, mais ça se complique quand on souhaite que cette bordure soit toujours de la hauteur de la colonne le plus grande. Faut-il la placer sur le conteneur de gauche ou de droite ?&lt;/p&gt;

&lt;h3&gt;Solutions&lt;/h3&gt;

&lt;p&gt;On peut dans un premier temps penser à utiliser la techniques des &lt;a href="http://www.pompage.net/pompe/colonnesfactices/"&gt;colonnes factices&lt;/a&gt; et placer un &lt;code&gt;background-image&lt;/code&gt; sous les colonnes, mais cela présente deux petits soucis :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la largeur des colonnes sera alors fixée ;&lt;/li&gt;
&lt;li&gt;on fait appel à une image alors qu’un simple style CSS pourrait suffire.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Voici la méthode que j’utilise à la place :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;div style=&amp;quot;overflow:hidden;height:1%;&amp;quot;&amp;gt;
    &amp;lt;div style=&amp;quot;float:left;width:200px;border-right:5px solid #000;&amp;quot;&amp;gt;
        &amp;lt;p&amp;gt;
            Colonne A.
        &amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div style=&amp;quot;float:left;width:200px;border-left:5px solid #000;margin-left:-5px;display:inline;&amp;quot;&amp;gt;
        &amp;lt;p&amp;gt;
            Colonne B.
        &amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;L’astuce consiste donc à placer deux bordures et à les faire se superposer ensuite via une marge négative de la largeur de la bordure. Simple, mais efficace.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WO0fGUYiWL8jCB7SazMTom79Xv8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WO0fGUYiWL8jCB7SazMTom79Xv8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WO0fGUYiWL8jCB7SazMTom79Xv8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WO0fGUYiWL8jCB7SazMTom79Xv8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/hChG7ALbhN0" height="1" width="1"/&gt;</content><author><name>Vincent</name></author><gr:likingUser>04983189160320482660</gr:likingUser><source gr:stream-id="feed/http://www.htmlzengarden.com/feed/"><id>tag:google.com,2005:reader/feed/http://www.htmlzengarden.com/feed/</id><title type="html">HTML Zen Garden</title><link rel="alternate" href="http://www.htmlzengarden.com" type="text/html" /></source><feedburner:origLink>http://www.htmlzengarden.com/2009/11/bordure_entre_deux_colonnes/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1257511418630"><id gr:original-id="http://css-tricks.com/?p=4632">tag:google.com,2005:reader/item/3a1a35ea4d6d41aa</id><category term="Article" /><title type="html">Quickie CSS3 Tricks with Fallbacks</title><published>2009-11-06T11:45:39Z</published><updated>2009-11-06T11:45:39Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/bPqTR-VZhh4/" type="text/html" /><content xml:base="http://css-tricks.com/" type="html">&lt;p&gt;CSS3 can do some seriously neat stuff. Just check out some of the &lt;a href="http://webkit.org/blog/386/3d-transforms/"&gt;crazy 3D stuff&lt;/a&gt; you can do in WebKit.  But as we all know, we need to be careful with what we choose to do with it. The most cutting edge techniques are fun to play with, but since since only a sliver of browsers support them fully, we can only use them in circumstances where they fall back to otherwise perfectly acceptable styling. Let’s look at a couple of quick, simple, cheezy examples.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Growing Links&lt;/h3&gt;
&lt;p&gt;Scaling an element is really fun any easy with CSS3. We don’t need CSS3 to do this, we could use relative positioning, offset the position, increase the width, height, and font size. But wow, that’s a heck of a lot of work when we can just apply a scale factor and be done with it. These links get their corners more rounded and a bit of a drop shadow applied on hover as well.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://css-tricks.com/wp-content/csstricks-uploads/growing-links.png" width="570" height="250" alt="" title=""&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.grower {
    display: block;
    margin: 0 auto;
    width: 120px;
    padding: 2px 5px;
    border: 1px solid #2f2626;

    background: rgba(237,95,0,0.3);
    -moz-transition: all 0.1s ease-in-out;
    -webkit-transition: all 0.1s ease-in-out;
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
}
.grower:hover {
    background: rgba(237,95,0,1.0);
    border-color: rgba(237,95,0,1.0);

    -moz-transform: scale(1.2);
    -webkit-transform: scale(1.2); 

    -moz-box-shadow: 0 0 20px black;
    -webkit-box-shadow: 0 0 20px black;

    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Blurred Edges&lt;/h3&gt;
&lt;p&gt;Using multiple shadows behind slightly transparent text can blurs the edges of text without the need of any images. A transition can fade the text out, track out the letters, and change the font size as well.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://css-tricks.com/wp-content/csstricks-uploads/ghostly.png" width="570" height="262" alt="" title=""&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;h3 {
    height: 100px;
    font: bold 80px Helvetica, Sans-Serif;

    color: black; /* fallback */
    color: rgba(0,0,0,0.2);

    text-shadow:
        0 0 2px rgba(0,0,0,0.2),
        0 0 4px rgba(0,0,0,0.2),
        0 0 6px rgba(0,0,0,0.2);
    -webkit-transition: all 0.2s linear;
}
h3:hover {
    color: rgba(28, 28, 28, 0.2);
    opacity: 0.8;
    letter-spacing: 15px;
    font-size: 70px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Elliptical Rounding&lt;/h3&gt;
&lt;p&gt;The poster child for progressive enhancement is border-radius. But did you know you don’t have to create perfectly circular rounded corners? We’ll create an oval here and give ‘er a spin just for fun (WebKit only… Mozilla has syntax for transitions but isn’t doing them yet).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://css-tricks.com/wp-content/csstricks-uploads/oval.png" width="570" height="250" alt="" title=""&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.oval {
    background: #fe4902;
    width: 200px;
    height: 100px;
    line-height: 100px;
    text-align: center;
    margin: 0 auto;

    /* Notice the slightly different syntax */
    -moz-border-radius: 100px / 50px;
    -webkit-border-radius: 100px 50px;

    -webkit-transition: all 0.8s linear;
    -moz-transition: all 0.8s linear;  /* non functional just yet */
}
.oval:hover {
    -webkit-transform: rotate(720deg);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;Multiple Backgrounds&lt;/h3&gt;
&lt;p&gt;If more widely supported, multiple backgrounds would be amazing timesavers. Alas, we can only use them for optional subtle enhancements now, where a fallback of nothing at all is acceptable.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://css-tricks.com/wp-content/csstricks-uploads/multbg.png" width="570" height="411" alt="" title=""&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;body {
    background:
        url(../images/top-right.png) top right fixed no-repeat,
        url(../images/top-left.png) top left fixed no-repeat,
        url(../images/bot-left.png) bottom left fixed no-repeat,
        url(../images/bot-right.png) bottom right fixed no-repeat;
    background-color: #2f2626;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://css-tricks.com/examples/QuickieCSS3Tricks/"&gt;View Demo&lt;/a&gt;   &lt;a href="http://css-tricks.com/examples/QuickieCSS3Tricks.zip"&gt;Download Files&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Hey ya’ll, quick reminder here: I wrote a book! It’s called Digging Into WordPress and you can &lt;a href="http://digwp.com"&gt;get it here.&lt;/a&gt;&lt;/p&gt;
&lt;div&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=AM-QPZGQohw:EDNJvep3KfE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?d=yIl2AUoC8zA" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=AM-QPZGQohw:EDNJvep3KfE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=AM-QPZGQohw:EDNJvep3KfE:F7zBnMyn0Lo" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CssTricks?a=AM-QPZGQohw:EDNJvep3KfE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CssTricks?i=AM-QPZGQohw:EDNJvep3KfE:gIN9vFwOqvQ" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CssTricks/~4/AM-QPZGQohw" height="1" width="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vFCiDhX1Nxvavj0hJdh1hUXA3kM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vFCiDhX1Nxvavj0hJdh1hUXA3kM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vFCiDhX1Nxvavj0hJdh1hUXA3kM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vFCiDhX1Nxvavj0hJdh1hUXA3kM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/bPqTR-VZhh4" height="1" width="1"/&gt;</content><author><name>Chris Coyier</name></author><gr:likingUser>18089301923537008520</gr:likingUser><gr:likingUser>08052501718204634313</gr:likingUser><gr:likingUser>10080639606302241327</gr:likingUser><gr:likingUser>01322665786149999775</gr:likingUser><gr:likingUser>02221075793819039734</gr:likingUser><gr:likingUser>05146921633288747240</gr:likingUser><gr:likingUser>04791668518262327119</gr:likingUser><gr:likingUser>13069418211018710794</gr:likingUser><gr:likingUser>11499505679360664310</gr:likingUser><gr:likingUser>00703608349977764707</gr:likingUser><gr:likingUser>07871283238073091975</gr:likingUser><gr:likingUser>00110233287583535986</gr:likingUser><gr:likingUser>15363570613321724645</gr:likingUser><gr:likingUser>05691206221905173664</gr:likingUser><gr:likingUser>18333952810110977826</gr:likingUser><gr:likingUser>00879565357723627896</gr:likingUser><gr:likingUser>08146542803737246515</gr:likingUser><gr:likingUser>03545964666694920486</gr:likingUser><gr:likingUser>18155913897095555350</gr:likingUser><gr:likingUser>17511498929802652213</gr:likingUser><gr:likingUser>03189109805845390108</gr:likingUser><gr:likingUser>07946743054399149922</gr:likingUser><gr:likingUser>08319530166990670811</gr:likingUser><gr:likingUser>01816360955994609875</gr:likingUser><gr:likingUser>02569676693691020509</gr:likingUser><source gr:stream-id="feed/http://feeds2.feedburner.com/CssTricks"><id>tag:google.com,2005:reader/feed/http://feeds2.feedburner.com/CssTricks</id><title type="html">CSS-Tricks</title><link rel="alternate" href="http://css-tricks.com" type="text/html" /></source><feedburner:origLink>http://feedproxy.google.com/~r/CssTricks/~3/AM-QPZGQohw/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1257367469779"><id gr:original-id="http://hacks.mozilla.org/?p=2241">tag:google.com,2005:reader/item/38872e545bef03ee</id><category term="Uncategorized" /><title type="html">two important api changes – CSS gradients and the media load event</title><published>2009-11-04T18:55:03Z</published><updated>2009-11-04T18:55:03Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/k60Tz8dw--U/" type="text/html" /><content xml:base="http://hacks.mozilla.org/" type="html">&lt;p&gt;&lt;a href="http://weblogs.mozillazine.org/roc/"&gt;Robert O’Callahan&lt;/a&gt; has been posting updates in his weblog about changes that we’re going to be making that are web-facing.  It’s worth summarizing two here for web developers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://weblogs.mozillazine.org/roc/archives/2009/10/removing_the_me.html"&gt;Removing the media element ‘load’ event.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Yesterday I checked in a patch that removes support for the ‘load’ event on &amp;lt;video&amp;gt; and &amp;lt;audio&amp;gt; elements. We simply never fire it. Also, the networkState attribute is now never NETWORK_LOADED. When we’ve read to the end of the media resource, networkState  changes to NETWORK_IDLE. We plan to ship this change for Firefox 3.6. &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This API has been removed based on consensus from everyone who are doing HTML5 video implementations and there are lots of other &lt;a href="http://weblogs.mozillazine.org/roc/archives/2009/10/removing_the_me.html"&gt;options for events that Robert goes over in his post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://weblogs.mozillazine.org/roc/archives/2009/11/css_gradient_sy.html"&gt;Changing our CSS Gradient Syntax&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;
We landed support for a form of CSS gradients on trunk a while ago, but we got considerable feedback that our syntax — which was an incremental improvement of Webkit’s syntax, which basically exposes a standard gradient API in the most direct possible way — sucked. A bunch of people on www-style got talking and Tab Atkins produced a much better proposal. Since we haven’t shipped our syntax anywhere yet, dropping it and implementing Tab’s syntax instead was a no-brainer. So Zack Weinberg, David Baron and I did that (using a -moz prefix of course), and today it landed on trunk. It should land on the Firefox 3.6 branch shortly. It’s unfortunate to land something new like this after the last beta, but in this case, it seems like the right thing to do instead of shipping CSS gradient syntax that we know nobody wants.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;We’ve never shipped the “bad” CSS gradient syntax in a final release, but it is in our first beta.  We’ll be updating it before we make our final release of 3.6.  Stay turned for the new syntax on &lt;a href="http://hacks.mozilla.org/"&gt;hacks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IGjeI_Jhn71fN_vDCzYYQ-bv84k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IGjeI_Jhn71fN_vDCzYYQ-bv84k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IGjeI_Jhn71fN_vDCzYYQ-bv84k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IGjeI_Jhn71fN_vDCzYYQ-bv84k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/k60Tz8dw--U" height="1" width="1"/&gt;</content><author><name>Christopher Blizzard</name></author><gr:likingUser>11067853532291698348</gr:likingUser><source gr:stream-id="feed/http://hacks.mozilla.org/feed/"><id>tag:google.com,2005:reader/feed/http://hacks.mozilla.org/feed/</id><title type="html">hacks.mozilla.org</title><link rel="alternate" href="http://hacks.mozilla.org" type="text/html" /></source><feedburner:origLink>http://hacks.mozilla.org/2009/11/api-change-media-load-css-gradient/</feedburner:origLink></entry><entry gr:crawl-timestamp-msec="1257367399159"><id gr:original-id="http://www.css3.info/?p=726">tag:google.com,2005:reader/item/7ec384cccfa5348d</id><category term="CSS3 Resources" /><title type="html">CSS3 Resource: Preview Custom Web Fonts with Font Dragr</title><published>2009-11-04T17:00:58Z</published><updated>2009-11-04T17:00:58Z</updated><link rel="alternate" href="http://feedproxy.google.com/~r/neolao-reader-css/~3/y2oFky89pfg/" type="text/html" /><author><name>Chris</name></author><source gr:stream-id="feed/http://feeds2.feedburner.com/css3"><id>tag:google.com,2005:reader/feed/http://feeds2.feedburner.com/css3</id><title type="html">CSS3 . Info</title><link rel="alternate" href="http://www.css3.info" type="text/html" /></source><content type="html">Font Dragr is a HTML5/CSS3 powered web app for testing custom web fonts. The app allows you to drag and drop your truetype (ttf), opentype (otf), scalable vector graphics (svg) or Web Open Font Format (WOFF) fonts into the webpage for an instant preview of how the font will be rendered in the browser, you [...]&lt;img src="http://feeds.feedburner.com/~r/css3/~4/YV1M8d4gMxc" height="1" width="1"&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/14YhkX4Sk04KiYbo1-sjgPoqvCo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/14YhkX4Sk04KiYbo1-sjgPoqvCo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/14YhkX4Sk04KiYbo1-sjgPoqvCo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/14YhkX4Sk04KiYbo1-sjgPoqvCo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/neolao-reader-css/~4/y2oFky89pfg" height="1" width="1"/&gt;</content><feedburner:origLink>http://feedproxy.google.com/~r/css3/~3/YV1M8d4gMxc/</feedburner:origLink></entry></feed>
