Menu Search
Jump to the content X X
Smashing Conf Barcelona 2016

We use ad-blockers as well, you know. We gotta keep those servers running though. Did you know that we publish useful books and run friendly conferences — crafted for pros like yourself? E.g. upcoming SmashingConf Barcelona, dedicated to smart front-end techniques and design patterns.

50 New CSS Techniques For Your Next Web Design

CSS is almost certainly one of the best developments in web design since the first graphical web browsers were adopted on a wide scale. Where tables created clunky, slow-loading pages, CSS created much more streamlined and usable web pages. Plus, CSS has allowed designers to achieve a number of different styles that used to only be possible with images.

One of the best parts of CSS is that it’s so simple once you know the basics. Where tables used to make incredibly complex and sometimes impossible-to-decipher code, CSS keeps things clean and simple. Add a few comments to keep everything organized and it becomes an absolute dream to work with.

Below are 50 fresh CSS tricks, techniques and tutorials that will help you to improve the quality of your next web design. Be sure to check out our previous article: 53 CSS-Techniques You Couldn’t Live Without1.

1. Security and Performance Link

While CSS is often thought of as merely a styling language, there are ways you can use it to add security to your site. There are also ways you can optimize your CSS to improve page load times. Both are discussed below.

Make your pages load faster by combining and compressing javascript and css files Link

This tutorial2 shows you how to create a PHP script to compress and combine multiple CSS and/or JavaScript files with gzip when they’re called for by a browser. It speeds up the page load times while making it possible to still edit the individual CSS or JavaScript files without having to combine and re-compress everything each times.

Informal testing showed that a group of JavaScript files were reduced from 168Kb (and 1905 ms to transfer) to 37Kb (and 400 ms). There wasn’t any data available for the effect it had on CSS files, but I’d guess it’s probably pretty similar.


The Definitive Post on Gzipping Your CSS Link

This post4 covers the best and most recent methods for using GZIP to compress your CSS. It currently covers two different methods, both equally effective. One involves adding a bit of PHP to your CSS file (and renaming the file with a PHP extension instead of CSS) while the other method involves using the same PHP code with some additions but in a separate file.


Clickjane.css: A CSS User Style Sheet to Help Detect and Avoid Clickjacking Attacks Link

This post6 covers how to use clickjane.css to prevent clickjacking, a class of security vulnerabilities kind of like phishing scams and more formally referred to as user interface redressing. It’s cross-browser compatible but, admittedly, probably only covers a small range of potential clickjacking vulnerabilities. It’s still a good place to start, though.


5 Step Style Sheet Weight Loss Program Link

This post shows five different ways to trim the size of your style sheets. Techniques range from learning how to group selectors to using CSS shorthand. Each technique is thoroughly explained and includes related resources.


2. Page Layout Link

This is what CSS was built for. The options are almost endless, especially as CSS3 becomes the new standard.

Aligning Inline Images with the Vertical-Align Property Link

The default vertical alignment for inline images in text sometimes looks not-so-great. This tutorial8 shows you how to better align inline images with your site’s type. It goes over the different types of vertical alignment and what they mean in relation to type.


CSS Centering Link

This post10 includes instructions for centering liquid layouts with CSS. It’s very simple and straight-forward and works in virtually all browsers. Basically, it just uses left and right margins combined with some additional code to make it cross-browser compatible.


Keeping footers at the bottom of your pages can be a real hassle with CSS, depending on how the rest of your page is set up. This tutorial12 shows exactly how to keep your footer where it should be—below the rest of your content! It’s a very thorough post, with complete, step-by-step instructions.


Vertical Centering with CSS Link

This post covers five excellent ways to center your content vertically. It includes the good and bad for each method along with complete instructions for implementing them. The methods range from using divs that act like tables to using absolute positions.


Handy Tips for Creating a Print CSS Stylesheet Link

This post14 is filled with great tips for creating better print stylesheets. It includes instructions for everything from including link destinations after the link text to splitting comments onto a new page. Pick and choose from the techniques offered or copy the whole stylesheet.


Fluid Images Link

Fluid layouts are great. They generally look and function just fine until you start introducing fixed-width elements within them—like images. This post16 shows how to make your images fluid, too. And it works for most embedded video. And while the basic technique includes just one CSS property, there is a workaround necessary to make it work on Windows machines.


Flexible Equal Height Columns Link

This tutorial18 shows how to create completely versatile equal height columns using valid and semantic markup. It’s cross-browser compatible and works with both fixed, fluid, and even elastic designs. It’s a very complete tutorial but not at all complicated.


CSS Columns with Borders Link

This is a technique20 for creating equal-height columns with CSS that have borders. It uses a series of nested divs to achieve the effect instead of images. The end result is fantastic.


Creating a Polaroid Photo Viewer with CSS3 and jQuery Link

The photo gallery created with this technique22 is absolutely awesome. The HTML and CSS aren’t super-complicated, and everything is explained really well. While CSS3 isn’t supported by every browser, this does appear to degrade gracefully, making it perfectly fine to use as long as you don’t mind some visitors not getting the full effect.


A Killer Collection of Global CSS Reset Styles Link

An incredibly complete collection24 of global resets, this post covers pretty much every reset you could possibly need. Some are short and sweet, consisting of only a couple of properties, while others are very complete and reset everything you might consider resetting.


Making Module Layout Systems Link

This tutorial26 gives complete instructions for creating modular layout systems using CSS. This makes it practical to use different grid-based divs as needed for individual content elements. The end result provides tons of flexibility for dealing with everything from images to text while keeping everything uniform and balanced.


Multiple Backgrounds (CSS3) Link

This tutorial shows how to implement multiple backgrounds using CSS3. It’s currently only supported by Safari, but the tutorial includes tricks to make it work in non-supported browsers. Currently, it doesn’t validate, but once the CSS3 standard is completed it’s likely it will.


CSS3 Multiple Columns Link

Here’s a tutorial for creating multi-column layouts with CSS3. The CSS is pretty simple and straight-forward, much easier than most current solutions to multi-column layouts. Unfortunately, this only works with Firefox, Safari and Chrome at the moment.


Smart Columns with CSS and jQuery Link

This tutorial shows how to create smart columns inside liquid layouts using a combination of CSS and jQuery. Basically, it fits as many columns into the base column size as possible and then distributes any leftover white space among the columns there. A very elegant solution if you want to allow for a variable number of columns without ending up with a bunch of leftover white space in your design.


CSS Hack for Chrome, Safari and Internet Explorer Link

This tutorial28 shows how to apply different style sheets based on the browser your visitors are using (at least in IE5-8, Google Chrome, and Safari 1-4). A very valuable technique if you want to use styles only supported in certain browsers without making your site look bad in unsupported browsers.

3. Menu and Navigation Customizations Link

Menu and navigation styles can really set your site apart if done well. Just remember, menus need to remain usable and functional no matter how they look.

Overlap That Menu! Link

Have you ever wanted to create menu items that overlap? This relatively-simple tutorial shows you how to do just that using unique classes for your menu items. It also tells how to reorder the navigation items using the z-index. It’s a nice effect that isn’t difficult to achieve.


Super Awesome Buttons with CSS3 and RGBA Link

With a little CSS3 magic, you can created a scalable set of sexy buttons29 with nearly half the CSS it would have taken with hex colors. Give it a go in your next project and see how it can help add that extra polish you want without huge impact on your code.

 Super Awesome Buttons with CSS3 and RGBA30

Custom Buttons 3.0 Link

This page31 shows a variety of rounded-corner (1px radius) buttons that don’t use images (other than for the optional background gradient). Just look at the source code for the page to see how it’s done.


Centered Tabs with CSS Link

This tutorial33 provides an alternative to the sliding doors method of creating tabs in CSS that allows tabs to be centered instead of only right- or left-aligned. It’s a multi-step tutorial but isn’t complicated.


Styling the Button Element with CSS Sliding Doors Link

An updated tutorial on sliding doors buttons that now includes creating them with CSS image sprites. It’s also been simplified to work with a single block of CSS in all the major browsers (including IE 6-8). The markup is simple and straight-forward and the end result is perfect.


Sometimes you have to use a button (like with forms), but realize your design would look so much better with just a simple text link. This tutorial gives a complete overview of how to make your buttons look like text links using CSS.


Simple, Scalable CSS Based Breadcrumbs Link

Breadcrumbs can be a great addition to your site’s navigation and can really improve your site’s usability. This tutorial35 shows you how to create breadcrumbs with CSS. The code used is simple (the HTML portion is just an unordered list) and there are only six CSS styles defined.


Recreating the Button Link

This article37 covers how to make a button that look very similar to regular HTML input buttons but can handle multiple types of interaction (like dropdowns or toggle functions). These buttons were originally developed at Google and are skinnable with just a few lines of CSS. The buttons created are entirely CSS-based, including the gradient background.


This page offers a good overview of different effects you can use for links, including color and underline, backgrounds, and animations. It’s a good starting place if you’re trying to figure out exactly how your links should look and act to make them more user-friendly.


Create Vimeo-Like Top Navigation Link

Here’s a tutorial39 to create a drop-down top navigation bar similar to the one Vimeo.com40 uses. It’s all done with images, CSS and HTML and isn’t particularly difficult, though it is a bit complex. It’s explained really well, with images illustrating the structure and very well-written CSS.


Beautifully Horizontal Centered Menus/Tabs/List Link

This tutorial42 explains how to create cross-browser compatible, centered menus or other items in CSS with no hacks and no JavaScript It’s compatible with liquid layouts, too. Not only does it give the code to achieve the effect, but it also fully explains exactly how and why it works.

4. Typography Link

Here are a few tutorials and tricks for creating advanced typographic styles using CSS. There’s everything from line-wrap functions to faux anti-aliasing to adding gradients and shadows.

Wrapping Text Inside Pre Tags Link

This tutorial43 shows how to wrap text within pre html tags. It’s useful for displaying code on your site, especially when lines of code are quite long and end up breaking your site’s layout (especially in IE). It’s a relatively simple and there are a few different options presented.


Make Cool and Clever Text Effects with CSS Text-Shadow Link

Creating text effects without the use of images is a big advantage in terms of both file size and the time required for maintenance. This tutorial45 shows how to take advantage of the text-shadow property in CSS to style your text. While this effect doesn’t work in IE, it does in most other browsers. And it looks incredibly cool if done well (I’m a big fan of the “milky text” example).


Safari’s Text-Shadowing Anti-Aliasing CSS Hack Link

This tutorial47 shows how to use the text-shadow CSS property to create an anti-aliasing effect on your text. It only works in browsers that support text-shadow (so not IE), but the look is pretty awesome. It can definitely make text more readable, just don’t overdo it or you end up with text that’s blurry.


Safari’s Text-Shadowing Anti-Aliasing CSS Hack Revision Link

This is a revised version of the technique above to create a slightly different anti-aliasing effect, especially useful for light text on dark backgrounds. It uses an extremely transparent black background to force Safari to render the text more legibly.


Snazzy Pullquotes for Your Blog Link

If you have a blog or other site that’s text-heavy, using pull quotes to highlight important bits can look really awesome while also making your content more scannable. This tutorial49 shows how to format those pull quotes with CSS. It shows how to create both left and right aligned pull quotes while also preserving your regular blockquote style.


Codename Rainbows Link

Here’s a technique for creating two-color gradients for text using a combination of JavaScript and CSS. It also works to apply shadows and highlights to text. The possibilities for the use of this technique are pretty endless. Of course, this is also one of those things where a little bit goes a long way (ie, limit gradients to your headers, titles, and other text you want to stand out—not your site’s body copy).


Build Better CSS Font Stacks Link

This article gives some great guidelines for creating better CSS font stacks. It includes information on the most common font stacks currently used and then goes on to cover Tuck’s Definitive Font Stacks and Ford’s Better Font Stacks. It’s a great resource when you’re determining a site’s typography, with the information presented in a very scannable, well-organized format.


CSS3 Embedding a Font Face Link

Here’s a great tutorial on how to embed fonts using CSS3. While it’s still not widely supported, this technique makes it much easier to embed special fonts into a site without having to resort to images.


CSS Gradient Text Effect Link

This little trick51 makes it easy to create gradient text by applying a 1 pixel gradient PNG to it. It’s a quick and easy way to create gradient text pretty much anywhere on your site. There’s even a fix to make it work in IE6 included.


5. Other Cool Techniques, Tips, and Tricks Link

Below are a ton of other techniques and tricks you can use to really make your CSS stand out.

3D Cube Using CSS Transformations Link

This is probably one of the coolest CSS techniques I’ve seen. This tutorial53 shows how to build a 3D cube with text or other content on each side of the cube. It does it entirely with CSS; there’s no canvas, SVG, imagery, or JavaScript. There’s even instructions for creating multiple shaded cubes on a single page. The only real drawback is that it’s only supported in recent WebKit and Gecko browsers.


Nine Ways to Obfuscate E-mail addresses compared Link

This article55 gives two different methods for obfuscating email addresses with CSS. One involves using the display:none attribute while the other involves reversing the code. Both supposedly cut the amount of spam received to zero.


Forms Markup and CSS – Revisited Link

Here is a CSS template for form styling. The markup of the form is based on the Accessible Forms Markup from Derek Featherstone. The template is semantically correct, flexible and accessible.


iPhone CSS Link

A very short and simple tutorial57 on how to make certain elements of you CSS render differently on the iPhone. It’s surprisingly simple and easy to implement.


Improving Your Process: Faster Front End Development Link

While this post offers plenty of information on things other than CSS, it also offers some great advice for improving your efficiency with CSS: mainly, write your CSS in blocks. This technique is usually done progressively as you get used to coding in this manner. The steps are simple, though, and it’s sure to make you a much faster designer.


Image-Free CSS Tooltip Pointers – A Use for Polygonal CSS? Link

This tutorial explains how to create triangles (to be used for pointers) using CSS, without the need for any images. The end result is great, though it only works for single-color images. The CSS used is incredibly simple while still being really versatile. You can create a triangle of almost any size using just a single div.


While not strictly a CSS trick, this post shows how to create a cookie-based CSS theme switcher for WordPress. It allows users to choose to use a different theme when they visit the blog while allowing new users to see a nice, simple, easy-to-read theme that puts the primary focus on the content.


CSS Swap Hover Effect Link

This great technique will replace any image with another image when you hover over it. The tutorial shows it applied to a portfolio site, but the possibilities are endless. It’s very slick and cross-browser compatible (though IE6 does require a bit of a workaround, as usual).


CSS Stacked Bar Graphs Link

Here’s a tutorial for creating stacked bar graphs using CSS and some images. It’s a pretty in-depth process, but the result looks fantastic.


Changing HTML Images on Hover / A Quick CSS Trick Link

Here’s a quick and easy CSS technique59 for swapping out images on hover. It’s pure CSS, no JavaScript required. The biggest issue this technique solves is that when the page is printed, the base image is the only one that shows up.


10 Properties that Were Impossible to Implement in IE6 Link

This collection61 of CSS tricks shows how to implement a number of styles that were supposedly impossible in Internet Explorer 6. It includes tricks for opacity, fixed positions, and text shadow, among others.


10 Challenging But Awesome CSS Techniques Link

Sometimes the coolest things just take a bit more effort. This collection of tutorials63 covers ten different CSS techniques that aren’t exactly easy to achieve, but the end results are well worth the extra effort. Techniques include pull quotes, dynamic variables, and style changes based on the time of day or even the weather, among other awesome examples.


Further Resources Link

Footnotes Link

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
SmashingConf Barcelona 2016

Hold on, Tiger! Thank you for reading the article. Did you know that we also publish printed books and run friendly conferences – crafted for pros like you? Like SmashingConf Barcelona, on October 25–26, with smart design patterns and front-end techniques.

↑ Back to top Tweet itShare on Facebook


Cameron Chapman is a professional Web and graphic designer with over 6 years of experience. She writes for a number of blogs, including her own, Cameron Chapman On Writing. She’s also the author of The Smashing Idea Book: From Inspiration to Application.

  1. 1

    Jonny Pioww

    July 20, 2009 1:37 am

    That’s a hugely extensive list. Excellent post and a lot of new things in there.

  2. 2

    Awesome post! great collection of extremely usefull css techniques!

  3. 3

    one of the best articles I’ve seen here.
    definitely going to add this to delicious ;)

  4. 4

    Thanks SM
    the “Build Better CSS Font Stacks” was just what I needed!

  5. 5

    Nice list!

  6. 6

    Great resources..
    iPhone CSS tutorial is something I was really looking for..
    Thanks SM!

  7. 7

    Łukasz Adamczuk

    July 20, 2009 1:04 am

    Some of them are really usefull.

  8. 8

    Very nice! Thanks.

  9. 9

    nice. bookmarked

  10. 10

    Chris Green

    July 20, 2009 1:12 am

    Amazing. How do you guys get so much content rammed into 1 blog post. You really are putting a lot of design blogs to shame now.

  11. 11

    Dainis Graveris

    July 20, 2009 1:12 am

    amazing, just amazing..such huge post..:)

  12. 12

    Wow thanx. Some of those techniques are very useful.

  13. 13


    July 20, 2009 1:51 am

    I definitely love CSS 3, but as it’s only (and partially) supported by FF3.5+, Chrome and Safari (for now), I would consider sticking with CSS 2 a wise decision.

  14. 14

    This is really cool collection of the CSS tricks

  15. 15

    very useful list!

    Thanks a lot!

  16. 16

    Do not use PHP to output CSS. It’s a serious overhead and it will kill your server sooner or later. Generate them beforehand and always serve them static.

  17. 17

    Great post. So many interesting things.

  18. 18

    Simply amazing. There few things here i never knew about. lots of thanks for his post. cheers!

  19. 19

    Dhaval Shah

    July 20, 2009 3:11 am

    Really great stuff !!! thanks a ton for this !! I love smashing !!

  20. 20

    Very, very informative. I enjoyed reading it very much and a big thanks to smashing for putting this up


↑ Back to top