Treehouse: Grow your CSS skills. Land your dream job.

Article Archives

256 Classes Beats an ID

According to the spec, one ID should be infinitely more specific than a class. But as it turns out, if you add 256 classes to a single element (same or different) it will override the ID. Dumb little edge case that probably will never be fixed, but interesting. Ryan Seddon digs in a little more. …

125 comments

Don’t Overthink It Grids

The vast majority of websites out there use a grid. They may not explicitly have a grid system in place, but if they have a "main content area" floated to the left a "sidebar" floated to the right, it's a simple grid.

If a more complex layout presents itself, people often reach for a grid framework. They assume grids are these super difficult things best left to super CSS nerds. That idea is perpetuated by the fact that a lot …

Smashing Mag CSS Q&A 3

The third installment of my recent question and answer series. This one includes code for dealing with retina version of sprites, fiddling with flexbox, and some of my favorite CSS tricks lately.…

ShopTalk Episode 29

This week Dave and I were joined by Tab Atkins and we talk about Tab's job as a spec writer working at Google, Flexbox, the future of float clearing, using encoded characters, smooth animations, and more!

Thanks to the Responsive Web Design Summit for sponsoring. RWDSummit is an online conference and you can save 20% by using coupon code SHOPTALK.…

Made to Measure

Allen Tan:

So if static templates are too limiting, but per-piece art direction is too costly, how else can we make scalable, sustainable digital publications that are beautiful and accessible? To find a middle path, we can take a cue from the art of the tailor.

I totally agree that the future of good design on digital publishing is somewhere in that middle ground. Art direction "lite", perhaps. And maybe with a bit of automation.…

104 comments

CSS Style Guides

As we wrap up our recent poll on ordering CSS properties, it brings up the larger issue of CSS style guides. Ordering properties is just one choice you have to make that makes up a complete styling strategy. Naming is a part of it. Sectioning is a part of it. Commenting, indentation, overall file structure... it all makes up a complete CSS style guide.

Let's round up some existing ones.…

Multiple Pseudos Work by Adobe

Things are moving along in the pseudo elements world again which is exciting. Alan Stearns put together this mock spec that defines usage like ::before(n) and ::nth-pseudo().…

40 comments

“Old” Flexbox and “New” Flexbox

Just so everyone is clear on this: "Flexbox" (more specifically: CSS Flexible Box Layout Module) has undergone a lot of changes in the last three years. Changes both to the spec and what browsers have implemented. …

Meny

Hakim El Hattab is at it again with a simple, beautiful, three-dimensional way to handle "hidden left side navigation" that's getting so popular on small screens. …

27 comments

CSS Pie Timer

Hugo Giraudel shares how he made a "pie timer" in CSS. In his words: It's basically a piece of pie getting bigger and bigger to become a whole circle.
39 comments

Squarespace 6

Squarespace 6 is freshly out. It's really nice and the start of what I hope is a revolution in what building content websites is like.

Prism

A code syntax highlighter by Lea Verou. Small, fast, and designed to work on front end languages. And my favorite, class names that make sense. …

Responsive Email Design

A guide from Campaign Monitor on making emails better on small screens. Some downloadable code at the end.…

63 comments

Use Cases for Multiple Pseudo Elements

I used to do an entire talk on pseudo elements. One of the things I mentioned was that there used to be a CSS3 spec that included "multiple" pseudo elements, but it was removed. That was kind of a bummer, because sometimes just ::before and ::after aren't enough. Why the seemingly arbitrary limitation? …

ShopTalk Episode 26

Dave and I do a RAPIDFIRE show this week where we try and get through as many listener questions as we can in one show. Thanks very much to Crafting Type (a 5 day workshop on building your own typeface in Canada) and Environments for Humans (next upcoming confererence is the online CSS Summit) for sponsoring.…

18 comments

Upcoming Speaking

I'm speaking at a number of events through the end of the year. Come one, come all!…

Seamless iframes Today

I didn't even know there was such a thing as "seamless" iframes. But there is and they are coming (literally an attribute on the iframe element). Essentially they inherit some styles from outside of them, but are otherwise sandboxed. Perfect for something like Disqus eh? Front end engineer Ben Vinegar from Disqus introduces them and shows some smart ways for emulating them now. …

52 comments

Crazy Town Selectors

I recently used this selector as an example in a blog post:

.article #comments ul > li > a.button { /* Crazy town */ }

There was a few comments to the effect that this seemed perfectly reasonable. I think if we step through it backwards the craziness comes out more clearly.…

Sprites and Retina Displays

CSS sprites are often used for small icons. That is exactly what looks bad on retina displays. Maykel Loomans has a way to deal with that that doesn't make our CSS twice as complicated: 1) Make sprite exactly twice as big 2) Swap out background in media query 3) Shrink background-size in half so coordinates are still correct.…

ShopTalk Episode 25

Dave and I were joined by Dan Cederholm and we talk about retrofitting existing sites responsively, getting back into the game, charging for fonts and lots about Dribbble. Thanks to Harvest and Environments for Humans for sponsoring.…

100 comments

Judging CSS / Spotting Bad Code

In a recent Q&A article on Smashing Magazine, a question was asked about how to tell if a developer has written bad CSS. Specifically:

What are the signs that the CSS is sub-optimal, or that the developer hasn’t done a good job? What do you look for in CSS to determine how good or bad it is?

I thought that was an interesting question and I'd expound upon my answer a bit. …

Some things beginners might not know about Sublime Text

Some quick hits from Alain Meier on some of the cool stuff Sublime Text 2 can do. I've been using and loving Sublime as my primary code editor for a while now. His list of A. through G. are my favorite features too.…

Smashing Mag CSS Q&A #2

In this one I answer questions about HTML email, baseline grids, resets, opacity issues, and more.…

6 comments

UI Pattern Ideas: Email Settings

Last week I asked people to participate in some group design thinking around a specific design pattern: email settings. This was the premise:

Imagine there are three events that can happen in a web app that could trigger an email. We want to allow the user to decide whether or not they receive emails when those events happen.

I looked through all the responses and these are the ones I thought were the most interesting and effective. …

37 comments

Beefing Up Dull Text in WebKit

While doing a bit of cross-browser poking around on CodePen, I noticed that the font for the code editors was notably duller and weaker in WebKit browsers (Safari and Chrome) than it was in Firefox or Opera. I quite like Chrome and it was sad to me knowing that I would be spending a lot of time looking at inferior looking text, so I set about looking for solutions.…

51 comments

Set Text on a Circle

There isn't any super simple standardized way to set web type on a circle (or any kind of curve). But it can be done! We'll explore one way to do it here. But be forewarned, we're going to use some CSS3 and JavaScript and not give two hoots about older browsers that don't support some of the required tech. If you're interested in this for a real project, this kind of thing is probably still best served by and image …

ShopTalk Episode 24

Dave and I were joined by David DeSandro where we talk about working in this industry, JavaScript versus CSS3, accessibility, David's various projects, and more. Thanks to Harvest (use code SHOPTALK for 50% off first month) and Environments for Humans for sponsoring. …

43 comments

Media Queries, Sass 3.2, and CodeKit

Media queries are already awesome. Media queries in Sass are already awesome. Media queries in Sass 3.2 are going to be really awesome. This is how you can get CodeKit to start using it.…

59 comments

The Fifth Fourth

Half a decade. That's how old CSS-Tricks turns today. That means it's time for the annual state of the union as we've done on it's 1st, 2nd, 3rd, and 4th birthdays. That reminds me. Obligatory stock art fireworks: …

Kickstarter Funding Closing

As I type, 36 hours left on the Kickstarter project for redesigning this website. Backing the project will get you the least expensive access ever offered to the video library of it all.…

Reader Survey

I'd love to gather some statistical data from ya'll if you have a few seconds. It will help with the big redesign.…

ShopTalk Episode 23

Dave and I are joined by Rogie King where we talk about illustration software, Dribbble, gettin' good and more. This weeks show was sponsored by the Incontrol Conference coming up in Hawaii. (…

37 comments

Podcasts I Like

I do this podcast called ShopTalk Show with Dave Rupert. If you like this blog you'll probably like that show. We bring on guests but it's mostly a listener Q&A show. I've had a few folks ask me what podcasts I listen to, so I thought I'd make a list and attempt to keep it updated.…

ShopTalk Episode 22

This week Dave and I were joined by Jessica Hische and talk a bunch about typography, clients, pricing, fun side projects, and more. Don't miss her new unreal wedding website.…

CSS Regions and Shadow DOM

One of my issues with CSS regions (we explored them a bit here) was the use of empty container divs for layout options. Razvan Caliman talks about fixing that by building out your own Shadow DOM tree. Clever, cutting edge stuff. You can see it work in Chrome Canary.…

18 comments

Transition Delay Delays

A while ago we covered a cool "hover" technique by Doug Neiner where an informational popup was displayed when you hovered over a picture. The first time you hovered over, there was a delay. This was to prevent accidental or fly-by mouse overs, as opposed to intentionally focusing on a particular picture. Subsequent hovers showed the popup immediately. The idea being that you're already in that exploratory mode.

Doug used jQuery for the animations and some fancy dancing to keep …

SouthStreet

A collection of tools by Filament Group to assist with building cross-device websites. For example AjaxInclude which provides a pattern for including non-essential bits of content when the conditions are right. …