If you're particularly interested in the last 5 lines, the discussion of class vs id is not the point here.
The fifth line and lines 7-11 (last five) refer to the sprite. (I'm sure you know that.) Using six lines to indicate five different images is just as effective as you are.
In addition, sprites usually use classes because the image will be deployed in different places.
The question of CSS performance for these lines is the need for a full link.
UPDATE: This Google document is invaluable because it explains how the browser uses CSS parsing. As a result, he qualifies some of what I wrote below. The browser works from right to left for each selector, so it will never parse the page section . The problem is only loading time.
#page section .s_1 menu li.b_5 a can also be .b_5 a if this is the only context the sprite uses. I would also put the class in <a> myself, and you could just refer to the button class as .b_5 . A better className would not get lost, or IMO; the extra five characters in button_5 not going to kill anyone :)
In general, you will almost certainly lose the #page section without losing accuracy and gaining performance. Using menu also highly undesirable.
At least you can, without a doubt, cancel it until the following:
* {padding:0; margin:0;} .s_1 { overflow:hidden; width:435px; float:left;} .s_1 h1 { font-size:36pt; color:#001744; line-height:1.1; margin-bottom:64px;height:107px;} .s_1 menu { list-style:none;} .s_1 li { float:left;} .s_1 menu li + li {margin-left:10px;} .s_1 a {background-image:url(../images/icon_buttons.png); background-repeat:no-repeat; width:79px; height:79px; display:block;} .b_1 { background-position:0 0;} .b_2 { background-position:-89px 0;} .b_3 { background-position:-178px 0;} .b_4 { background-position:-267px 0;} .b_5 { background-position:-357px 0;}
Personally, I think .b_1,.b_2,.b_3,.b_4,.b_5 better than .s_1 a . Also usually you do not need to have background-repeat:no-repeat; if you use a sprite and specify the height and width (if the width is greater than the sprite).
If you feel REALLY, you may lose the final ; to } too :)