views:

986

answers:

4

Is it possible to use 2 CSS classes that have the same name for the selectors, etc. in the same HTML file? If so, how do you differentiate between the two when styling elements?

+1  A: 

Yes it is possible. The definitions in second file will overwrite the definitions of the first file. There is no way to differentiate between the two but to prepend the class names according to the file.

fasih.ahmed
A: 

do you mean 2 definitions for the same class? or 2 class names on an element?

The first case, no.

<style>
  .foo{
    border:1px solid blue;
    color:red;
  }
  .foo{
    border:4px solid orange;
  }
</style>
<div class="foo">this will have an orange border and red text (no blue border)</div>

The second case, yes

<div class="class1 class2">this is valid</div>
scunliffe
2 similar class names in 2 separate files.
Xaisoft
Well, true. But, misleading. Each new definition expands/overrides the last. The "foo" div will still have red text.
Jonathan Lonowski
Ah my bad, my code sample didn't match my thought.Xaisoft: if the names are different, then you are totally fine, you can do whatever you want. The only issue is if the names are the exact same.
scunliffe
+1  A: 

...that have similar names for the selectors

If the names really are similar and not identical then there shouldn't be a problem.

EBGreen
Assume they are identical.
Xaisoft
I've edited the question to reflect this.
John Topley
Well, then the overwrite answers that you already have are the right answer.
EBGreen
+10  A: 

Yes this is possible, simply include two css files in the HEAD section of the document. Any styles set in the first will be overwritten in the second, so say you have this:
First file:

 #something{
  background-color: #F00;
  color: #FFF;
 }

And then in the second file:

 #something{
  background-color: #000;
 }

Then the background color for #something will be overwritten in the second file to black but the color will stay the same since the second file doesn't say anything about it.

Pim Jager