that’s some tricky wording there. If I understand your question correctly you are asking why that rules targets(pun) the pseudo class generally, as opposed to a specific id.
Think of it this way… :target is a pseudo class that is “added” to an element that matches a fragment identifier(“#whatever”) present in the URI.
in a sense this pseudoclass is unique to the even of that section being selected, so it is not entirely necessary to add the targeted #ID unless that was the ONLY target you had in mind.
Let say for example you had a page with 5 sections and a navigation sidebar on the left with links to the ID of each sections ( do note that anchor tags are optional!)
you want the background of any targeted element ( the section headers, which the navigation is linked to) to be pink.
:target {background: pink;} (as opposed to #hed1:target,#hed2:target ,#hed3:target ,#hed4:target {background: pink;})
will do just nicely.
Of course, had more specific needs,let say the second header needed to be an exception and thus be purple.
:target {background: pink;} #hed2:target {background: purple;}
also if there are links to other element other than headers in the then it is safer to write more specific rules:
.section h2:target {background: pink;}
.section #hed2:target {background: purple;}
You can get rid of the name attributes on all your <a> tags and replace them with ids - unless you have a particular need to still support Netscape 4. All browsers since Netscape 4 have replaced the name attribute on <a> tags with an id on any tag as the destination for a targetted link.