I know that in a stylesheet div#name and #name do the same thing. Personally I’ve taken to using div#name for most styling I do, with the reasoning that it’s slightly faster, and means that I can identify HTML elements more easily by looking at the CSS.
However all of the big websites I seem to look at use #name over div#name (stack overflow included)
In fact I’m finding it very difficult to find many websites at all that use div#name over #name
Is there some advantage to doing #name that I’m missing? Are there any reasons to use it over div#name that I don’t yet know about?
Since ID’s have to be unique on the page, most ID’s you’d run into would only ever appear once in your style sheet, so it makes sense not to bother including what element it would appear on. Excluding it also saves a few characters in your style sheet, which for large sites which get visited millions and millions of times a day, saves quite a bit of bandwidth.
There is an advantage to including the element name in the case where a division with ID “name” might appear differently than a span with ID “name” (where it would show a division on one type of page and a span on another type of page). This is pretty rare though, and I’ve never personally run across a site that has done this. Usually they just use different ID’s for them.
It’s true that including the element name is faster, but the speed difference between including it and excluding it on an ID selector is very, very small. Much smaller than the bandwidth that the site is saving by excluding it.