ID’s and classes are “hooks”! Show
We need ways to describe content in an HTML/XHTML document. The basic elements like These ID’s and Classes the “hooks” we need to build into markup to get our hands on them. CSS obviously needs these so that we may build selectors and do our styling, but other web languages like JavaScript depend on them too. But what is the difference between them? ID’s are unique
When I was first learning this stuff, I heard over and over that you should only use ID’s once, but you can use classes over and over. It basically went in one ear and out the other because it sounded more like a good “rule of thumb” to me rather than something extremely important. If you are purely an HTML/CSS person, this attitude can persist because to you, they really don’t seem to do anything different. Here is one: your code will not pass validation if you use the same ID on more than one element. Validation should be important to all of us, so that alone is a big one. We’ll go over more reasons for uniqueness as we go on. Classes are not unique
Any styling information that needs to be applied to multiple objects on a page should be done with a class. Take for example a page with multiple “widgets”:
You can now use the class name “widget” as your hook to apply the same set of styling to each one of these. But what if you need one of them to be bigger than the other, but still share all the other attributes? Classes has you covered there, as you can apply more than one class:
No need to make a brand new class name here, just apply a new class right in the class attribute. These classes are space-delimited and most browsers support any number of them (actually, it’s more like thousands, but way more than you’ll ever need). There are no browser defaults for any ID or ClassAdding a class name or ID to an element does nothing to that element by default. This is something that snagged me as a beginner. You are working on one site and figure out that applying a particular class name fixes a problem you are having. Then you jump over to another site with the same problem and try to fix it with that same class name thinking the class name itself has some magical property to it only to find out it didn’t work. Classes and ID’s don’t have any styling information to them all by themselves. They require CSS to target them and apply styling. Barcodes and Serial NumbersMaybe a good analogy here is bar codes and serial numbers. Take an iPod in a store. On the packaging will be a bar code. This tells the store what the product is, so when it is scanned, the system knows exactly what the product is and what it costs. It might even be able to know what color it is or where it was kept in the store. All iPod of this same type have the exact same bar code on them. The iPod will also have a serial number on it which is absolutely unique to any other iPod (or any other device) in the world. The serial number doesn’t know the price. It could, but for the store this wouldn’t be a very efficient way to store and use that data. Much easier to use the barcode, so that for example, if the price changed, you could just change the price for that bar code and not every individual serial number in your system. This is much like ID’s and Classes. Information that is reusable should be kept in a class and information that is totally unique should be kept in an ID. ID’s have special browser functionalityClasses have no special abilities in the browser, but ID’s do have one very important trick up their sleeve. This is the “hash value” in the URL. If you have a URL like http://yourdomain.com#comments, the browser will attempt to locate the element with an ID of “comments” and will automatically scroll the page to show that element. It is important to note here that the browser will scroll whatever element it needs to in order to show that element, so if you did something special like a scrollable DIV area within your regular body, that div will be scrolled too. This is an important reason right here why having ID’s be absolutely unique is important. So your browser knows where to scroll! Elements can have BOTHThere is nothing stopping you from having both an ID and a Class on a single element. In fact, it is often a very good idea. Take for example the default markup for a WordPress comment list item:
It has a class applied to it that you may want for styling all comments on the page, but it also has a unique ID value (dynamically generated by WordPress, nicely enough). This ID value is useful for direct linking. Now I can link directly to a particular comment on a particular page easily. CSS doesn’t careRegarding CSS, there is nothing you can do with an ID that you can’t do with a Class and vise versa. I remember when I was first learning CSS and I was having a problem, sometimes I would try and troubleshoot by switching around these values. Nope. CSS doesn’t care. JavaScript caresJavaScript people are already probably more in tune with the differences between classes and ID’s. JavaScript depends on there being only one page element with any particular If you don’t need them, don’t use themAs you can see, classes and ID’s are very important and we rely on them every day to do the styling and page manipulation that we need to do. However, you should use them judiciously and semantically. This means avoiding things like this:
We already know this element is a link, it’s an anchor element! No particular need here to apply a class, as we can already apply styling via its tag. Also avoid this:
ID is appropriately used here as the page will likely only have a single right column, but the name is inappropriate. Try and describe the context of the element, not where it is or what it looks like. An ID here of “sidebar” would be more appropriate. Microformats are just specific class namesThink microformats are over your head? They aren’t! They are just regular markup that make use of standardized class names for the information they contain. Check out a standard vCard:
What is div id and class in HTML?Definition. div id is the assignment of the id attribute to a div block to apply styling or interactivity to that specific div block. In contrast, div class is the assignment of a class attribute to a number of div blocks to apply styling or interactivity to a group of div blocks.
What is div id in CSS?Divs, Spans, Id's, and Classes
These tags are primarily used as "hooks" for your CSS. You use them to divide or label your HTML (when another, more semantic tag will not work) and use CSS selectors to target them. Class and Id's are HTML Attributes. They are also used as CSS hooks.
Does div have ID?Yes, any HTML element (like div, input, nav, body, etc) can have both “id” and “class” together and at the same time. The only difference here is that “id” can have only one unique value and “class” can have more than one.
Can div put ID in HTML?An id on a <div> tag assigns an identifier to the div element. The identifier must be unique across the page.
|