I have heard that ID is unique and can only be used once in a page, but its working fine when used over multiple times on a page. Please let me know the purpose of ID and hows its exactly different from classes?
@HTML FILE
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<LINK href="special.css" rel="stylesheet" type="text/css">
<title>Untitled Document</title>
</head>
<body>
<div class="layout">
<div class="left_box">
<div id="color"></div>
</div>
<div class="right_box">
<div id="color"></div>
</div>
</div>
</body>
</html>
@CSS FILE
@charset "utf-8";
/* CSS Document */
.layout {
width:600px;
height:600px;
background-color:#666;
margin:0 auto;
}
.left_box {
width:300px;
height:600px;
float:left;
}
.right_box {
width:300px;
height:600px;
float:right;
}
#color {
background-color:#CCC;
height:600px;
}
Confusion abound here. Turns out, everybody is kinda right. Here are the facts:
here is simplest example
It's just an attribute and it's a seemingly arbitrary difference in syntax depending on which one you use. The results are predictable:
REFERENCE
If I can use an analogy of cars:
ID is like a Registration Plate
Class is like a Vehicle Model
Continuing the anaology:
It's fine to duplicate registration plates in so far as the cars still work - but the police would get quite annoyed! How would you identify a particular driver as having been speeding?
The same applies with HTML elements - reusing the same ID just stops you identifying a single element when you need to.
You have heard correctly. The behavior you are seeing is the result of browsers being coded to be extremely accommodating in the face of gross violations of the HTML standard.
The idea behind the fact that they have been coded to work even when presented with "bad" data is that, to less technically proficient users, it's the browser's fault if something does not work. Browsers were forced to work with tag soup, and this is the logical extension.
That is an HTML rule and has nothing to do with CSS.
Browsers perform error recovery. Don't depend on it as not all browsers will recover from all errors in the same way. Write valid markup.
In HTML terms — an id is unique per document and can be a link target. A class can be reused.
In CSS terms — An id selector has a higher specificity than a class selector.
An ID is used to reference certain elements when using JQuery / Javascript etc, so technically if you wish to utilise these features then IDs on your page should be unique.
If you are only bothered about styling then it really isn't a huge issue, although it isn't valid practice.
In CSS terms, ID's are faster to find than classes.
You should use classes for things that are to be re-used.
EG: