Most of us know that with the introduction of what we customarily call “CSS3”, there have been changes and additions to CSS, compared to what we had in CSS2.1.
Putting all cross-browser issues aside, I thought it would be nice to be able to document all these changes into a single post and keep it up to date.
So if you want a list of everything that’s been introduced into the CSS spec since CSS2.1, here it is.
A couple of weeks ago Packt Publishing contacted me and gave me a free e-book version of Divya Manian’s new book HTML5 Boilerplate Web Development.
For a while now I’ve been wondering who was going to write a book on HTML5 Boilerplate. Although much of what’s in Boilerplate is “plug and play” (i.e., it just works, even if you don’t know what it does), I think many people are intimidated by it and would like a deeper understanding of what’s going on, and what is the optimal way to employ this popular framework. So a book on this topic is a great idea.
Before I get into the meat of this post, I’ll just provide some context. Last week, Harry Roberts posted a fantastic article discussing his view of bad CSS. In that article, as he’s done before, he disourages the use of IDs as selectors.
In response, Jeffrey Zeldman tried to defend the use of ID selectors. I posted a few comments in response to Jeffrey and another commenter, explaining why their views were wrong.
Last year, Microsoft announced that IE10 will not be supporting conditional comments. With their history, this is obviously a risky move. Up to now, to target quirky behaviour in IE6-9, developers have been using conditional comments, conditional classes, and other IE-specific hacks.
But without conditional comments in IE10, the only options we’re left with to target CSS problems are hacks or browser sniffing — and we certainly don’t want to resort to the latter.
Interestingly, there have been a few posts and code snippets floating around that apparently do target IE10 specifically using a hack. Below is a summary of these three techniques, for reference.
In most cases, when you place an element on the page in your markup, if you don’t specify any special styles, it will occupy exactly the same space that it appears to occupy visually.
In other words, if you place a box sized at 200px by 200px on your page, anything you place after it in the source order, with no further styles added, will occupy the space below or beside the green box, outside of those set boundaries.
But not everything on an HTML page occupies space that is honored by other elements. I thought it would be interesting to list and describe all the things in CSS that don’t occupy this kind of physical space in an HTML document.
For a while now, I’ve been using Notepad++ with a customized version of the Zenburn theme, which was originally created for Vim.
This week I finally started fiddling around with Sublime Text 2, and I like what I’ve seen. Although I like the default Monakai theme, I prefer my old customized version of Zenburn from Notepad++. So I forked the Zenburn repo and made my alterations.
The other day, someone asked me the following question: “If I understand it right clear float is automatic in most modern browsers right?”
If you’re new to CSS, then it would seem that the answer to this question should be “yes, of course — modern browsers don’t have these types of bugs!” But the necessity to clear floats is not a browser bug; it’s actually, well, more of a CSS feature. And it’s still needed in so-called “modern” browsers (assuming you’re using floats for layout).
Recently, I’ve bookmarked a bunch of animation-related scripts, libraries, and plugins. Although CSS3 has certainly made animation easier for us, sometimes we need a little bit of help.
There are other libraries that are more popular than these (like Raphaël.js), but these are some mostly lesser-known scripts that I’ve stumbled across in recent months.
Every element in an HTML document accepts a value for the CSS
display property. The possible values you can use for
display are many.
The three most commonly used values are
inline. But what if you don’t define a
display value for an element? Well, all elements have an initial or default state for their
display value. Let’s consider some of these and see some interesting things you might not have known.