You know, we use ad-blockers as well. 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. our upcoming SmashingConf San Francisco, dedicated to smart front-end techniques and design patterns.
Louis Lazaris is a freelance web developer and author based in Toronto, Canada. He blogs about front-end code on Impressive Webs and curates Web Tools Weekly, a weekly newsletter for front-end developers.
From my own vantage point — aside from a few disputes about what the term "HTML5" should and shouldn't mean — the web design and development community has for the most part embraced all the new technologies and semantics with a positive attitude.
While it's certainly true that HTML5 has the potential to change the web for the better, the reality is that these kinds of major changes can be difficult to grasp and embrace. I'm personally in the process of gaining a better understanding of the subtleties of HTML5's various new features, so I thought I would discuss some things associated with HTML5 that appear to be somewhat confusing.
When the CSS1 specification was drafted in the mid to late 90s, it introduced !important declarations that would help developers and users easily override normal specificity when making changes to their stylesheets. For the most part, !important declarations have remained the same, with only one change in CSS2.1 and nothing new added or altered in the CSS3 spec in connection with this unique declaration.
Let's take a look at what exactly these kinds of declarations are all about, and when, if ever, you should use them. But before we get into !important declarations and how exactly they work, let's give this discussion a bit of context. In the past, Smashing Magazine has covered CSS specificity in-depth, so please take a look at that article if you want a detailed discussion on the CSS cascade and how specificity ties in.
There are well-known proverbs that imply (or state outright) that beauty is superficial and limited in what it can accomplish. "It's what's inside that counts" and "Beauty is only skin deep" are a few simple examples. Because the Web design industry is now flooded with a lot of raw talent, and because virtually anyone can create a "beautiful" website, recognizing a truly beautiful website experience is becoming increasingly difficult. What appears beautiful to the eye might in fact be more of a hindrance.
In this article, I hope to provide a clear demarcation between what is perceived by most to be beautiful in Web design and what is truly beautiful, along with some guiding principles to help designers today create websites whose beauty is not superficial, but rather improves and enhances the user experience.
In previous video roundups, we've collected together some interesting videos and presentations from a variety of speakers discussing topics covering usability, graphic design, CSS frameworks, web standards, and more. In this small roundup, we've included seven videos that we think would be of great interest to web app developers in particular, with less focus on design and standards.
These presentations are a little more technically heavy than ones we've featured in the past, but we think they're worth every minute. Check them out, and be sure to comment to include links to any related videos that you feel are worth mentioning.
I'll start this article with a positive statement: Most people frequenting the web design community (whether they are casual readers or regular design bloggers doing research) understand that nothing is truly free (not even content), and appreciate the fact that many blogs, design resources, and tech news sites rely on advertising to keep them afloat.
But unfortunately, not everyone gets this, and not everyone understands that with some viral pushing of certain trends and ideas, we as a community could be inadvertently shooting ourselves in the foot while we try to make our own browsing experience less ad-intrusive, and more comfortable.
It is arguable that there is no goal in web design more satisfying than getting a beautiful and intuitive design to look exactly the same in every currently-used browser. Unfortunately, that goal is generally agreed to be almost impossible to attain. Some have even gone on record as stating that perfect, cross-browser compatibility is not necessary.
While I agree that creating a consistent experience for every user in every browser (putting aside mobile platforms for the moment) is never going to happen for every project, I believe a near-exact cross-browser experience is attainable in many cases. As developers, our goal should not just be to get it working in every browser; our goal should be to get it working in every browser with a minimal amount of code, allowing future website maintenance to run smoothly.
In this article, I'll be describing what I believe are some of the most important CSS principles and tips that can help both new and experienced front-end developers achieve as close to a consistent cross-browser experience as possible, with as little CSS code as possible.
Experienced developers understand that CSS3 can be added to new projects with progressive enhancement in mind. This ensures that content is accessible while non-supportive browsers fall back to a less-enhanced experience for the user.
But developers could face a situation where a client insists that the enhancements work cross-browser, demanding support even for IE6. In that case, I've collected together a number of options that developers can consider for those circumstances where support for a CSS3 feature is required for all versions of Internet Explorer (IE6, IE7, & IE8 — all of which are still currently in significant use).
You may be interested in the following related posts:
In one of our previous articles, I put together a list of 7 must-see videos related to web design. Since then, I've come across a number of other videos from conferences and events, and I thought I would share some of those here. The list includes a brief description of each video, some notable quotes from the presentations, and related links. So, sit back, take your time and enjoy some great technical insights and design principles from some well-known web designers, developers, and conference speakers.
The Influence of Print Design, by speaker Jason Santa Maria. Part of the MFA in Interaction Design program, this is a candid and personal discussion of how print design and the technique of "storytelling" have affected the designs of the speaker in his professional career as a web designer.
Ah, the ubiquitous CSS sprites one of the few web design techniques that was able to bypass "trend" status almost instantly, planting itself firmly into the category of best practice CSS. Although it didn't really take off until well after A List Apart explained and endorsed it, it was discussed as a CSS solution as early as July, 2003 by Petr Stanícek.
Most web developers today have a fairly strong grasp of this technique, and there have been countless tutorials and articles written on it. In almost every one of those tutorials, the claim is made that designers and developers should be implementing CSS sprites in order to minimize HTTP requests and save valuable kilobytes. This technique has been taken so far that many sites, including Amazon, now use mega sprites.
Is this much-discussed benefit really worthwhile? Are designers jumping on the CSS sprite bandwagon without a careful consideration of all the factors? In this article, I'm going to discuss some of the pros and cons of using CSS sprites, focusing particularly on the use of "mega" sprites, and why such use of sprites could in many cases be a waste of time.